【问题标题】:How do I use python reverse() function to pass list of ids as query parameter?如何使用 python reverse() 函数将 id 列表作为查询参数传递?
【发布时间】:2020-10-06 23:12:31
【问题描述】:
我需要生成一个带有对象 ID 列表的 URL 作为查询参数。
IE
网址将类似于 admin/app/model/?id__in=1,2,3。
我用过reverse('admin:app_model_changelist', kwargs={id__in:<list_of_ids>}) 似乎不起作用
【问题讨论】:
标签:
python-3.x
django
django-views
django-admin
【解决方案1】:
reverse() 不会生成查询参数。您可以尝试将字符串格式化为
path = reverse('admin:app_model_changelist')
result = '%s?id__in=%s' % (path, ','.join(map(str,list_of_ids)))
【解决方案2】:
使用kwargs,您必须提供带有命名参数的字典,如您的 URL 配置中所指定。
尝试改用args,如resolve() 上的django documentation 中所述:
如果 URL 接受参数,您可以在 args 中传递它们。例如:
from django.urls import reverse
def myview(request):
return HttpResponseRedirect(reverse('arch-summary', args=[1945]))