首页 > 解决方案 > 如何在 django 中使用带有可选参数的反向?

问题描述

我有下面的 URL,我现在在其中传递一个整数值 (pk),当我在这个 URL 上调用 reverse 时,我得到了下面提到的错误。

网址.py

    urlpatterns = [ 
path('batch-postpone/<int:pk>/', postpone_batch, name='batch-postpone'),
]

测试.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]+)/$']



标签: djangodjango-testingdjango-tests

解决方案


此功能的文档的第三段。

from django.urls import reverse

def myview(request):
    return HttpResponseRedirect(reverse('arch-summary', args=[1945]))

推荐阅读