Как использовать функцию python reverse () для передачи списка идентификаторов в качестве параметра запроса? - PullRequest
1 голос
/ 17 июня 2020

Мне нужно сгенерировать URL-адрес со списком идентификаторов объектов в качестве параметров запроса. т.е. URL-адрес будет выглядеть примерно как admin/app/model/?id__in=1,2,3. Я использовал reverse('admin:app_model_changelist', kwargs={id__in:<list_of_ids>}), но, похоже, не работает

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Используя kwargs, вам нужно будет предоставить словарь с именованными аргументами, как указано в вашей конфигурации URL.

Попробуйте вместо этого использовать args, как описано в django документация на resolve():

Если URL принимает аргументы, вы можете передавать их в args. Например:

from django.urls import reverse

def myview(request):
   return HttpResponseRedirect(reverse('arch-summary', args=[1945]))
0 голосов
/ 17 июня 2020

reverse() не будет генерировать параметры запроса. Вы можете просто попробовать форматирование строки как

path = reverse('admin:app_model_changelist')
<b>result = '%s?id__in=%s' % (path, ','.join(map(str,list_of_ids))) </b>
...