Постройте Django URL для export_selected_objects. Пример функции из официальной документации django
Я пытаюсь построить URL, который соответствует перенаправлению из этой функции:
def export_selected_objects(modeladmin, request, queryset):
selected = queryset.values_list('pk', flat=True)
ct = ContentType.objects.get_for_model(queryset.model)
return HttpResponseRedirect('/export/?ct=%s&ids=%s' % (
ct.pk,
','.join(str(pk) for pk in selected),
))
Вот что я пробовал:
from django.urls import path, re_path
from . import views
urlpatterns = [
re_path(r'^export/(?P<ct>[0-9]{2})/(?P<ids>[0-9]{4})/$', views.test),
path('export/<int:ct><int:ids>/', views.test),
path('export/<int:ct>/<int:ids>/', views.test),
path('export/<ct><ids>/', views.test),
]
Но ни один из них не подходит.
Может кто-нибудь подсказать, что я здесь упускаю?
Большое спасибо!
Себастьян
Вы генерируете URL с параметрами запроса, который выглядит следующим образом:
/export/?ct=%s&ids=%s
Часть, начиная с ?
и далее, игнорируется распознавателем URL. Ваш файл URL ожидает следующего формата:
/export/<ct>/<ids>/
Но запрашиваемый вами URL не соответствует этому, и в файле также нет ничего, соответствующего вашему URL.
Вы можете либо:
a) добавьте path('export/', ...)
в ваш файл urls.py
b) изменить сгенерированную строку URL на /export/%s/%s/