如何使用reverse()的现有视图?

时间:2017-06-29 09:14:36

标签: python django url reverse

我创建了一个处理POST的视图。我尝试使用reverse来创建一个使用此视图处理多个作业的视图。我得到以下

以下是错误消息

  

django.core.urlresolvers.NoReverseMatch:反向' release_action'   参数'()'和关键字参数' {}'未找到。 0个图案   尝试过:[]

查看处理POST请求的代码。

class ReleaseActionView(APIView):
    authentication_classes = (SessionAuthentication,)
    permission_classes = (IsAuthenticated, IsAdminUser)

    def post(self, request, release_id, *args, **kwargs):
    ...
    return Response(...)

我在reverse()中编写代码以在for循环中运行上面的代码。我收到一条错误消息。问题是什么?这是for循环代码

class ReleaseBulkActionView(APIView):
    def post(self, request, *args, **kwargs):
        ...
        for release in releases:
        ...
            HttpResponseRedirect(reverse('release_action', args=(), kwargs={}))

Urls.py看起来像这样:

url(r'^releases/(?P<release_id>[0-9]+)/actions/?$', ReleaseActionView.as_view(), name="release_action")

1 个答案:

答案 0 :(得分:4)

我认为你错过了reverse()中的论据。它可能是:

release_id = 4711
reverse('release_action', kwargs={'release_id': release_id,})

会为你找到4711的网址