Как использовать реверс с необязательными параметрами в django?
У меня есть URL, в котором я передаю целочисленное значение (pk), теперь, когда я вызываю обратный вызов на этом URL, я получаю нижеупомянутую ошибку.
urls.py
urlpatterns = [
path('batch-postpone/<int:pk>/', postpone_batch, name='batch-postpone'),
]
tests.py
class ABCTestCases(APITestCase, TestCase):
self.postpone_batch_url = reverse('batch-postpone')
Ошибка, которую я получаю...
django.urls.exceptions.NoReverseMatch: Reverse for 'batch-postpone' with no arguments not found. 1 pattern(s) tried: ['batch\\-postpone/(?P<pk>[0-9]+)/$']
Введите id в reverse()
, как reverse('batch-postpone', args=[1])
https://docs.djangoproject.com/en/3.2/ref/urlresolvers/#reverse
class ABCTestCases(APITestCase, TestCase):
id = 1
self.postpone_batch_url = reverse('batch-postpone', args=[id])
Третий параграф документации для этой функции.
from django.urls import reverse
def myview(request):
return HttpResponseRedirect(reverse('arch-summary', args=[1945]))