【问题标题】: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]))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-02
        • 2012-04-03
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        相关资源
        最近更新 更多