Django 反向_lazy与kwargs不匹配

Django 反向_lazy与kwargs不匹配,django,django-urls,Django,Django Urls,我有一个Django CreateView,它应该重定向到querystring中带有UUID的URL: @method_decorator(xframe_options_exempt, name='dispatch') class ActivityCreateView(CreateView): template_name = 'embedded/activities/create.html' form_class = ActivityCreateUpdateForm

我有一个Django CreateView,它应该重定向到querystring中带有UUID的URL:

@method_decorator(xframe_options_exempt, name='dispatch') 
class ActivityCreateView(CreateView):

    template_name = 'embedded/activities/create.html'
    form_class = ActivityCreateUpdateForm

    def get_success_url(self):
        return reverse_lazy('embedded:activity_status', kwargs={'unieke_code': self.object.access_link})
但是,这会产生常见的错误:

未找到带有参数“()”和关键字参数“{unieke_代码”:UUID('470e3a5f-6f52-414e-a431-bf5c6e68509a')的“活动_状态”的反向。已尝试1种模式:[“嵌入式/活动终端/状态/”]

奇怪的是,它显然找到了模式,但仍然不匹配。这是我的URL.py:

urlpatterns = [
    url(r'^activiteiten/$', views.ActivitiesIndexView.as_view(), name='activities_index'),
    url(r'^activiteiten/aanmelden/$', views.ActivityCreateView.as_view(), name='activity_create'),
    url(r'^activiteiten/status/', views.ActivityStatusView.as_view(), name='activity_status'),
]

奇怪的是,当我进入mysite.com/embedded/activiteiten/status/?unieke_code=470e3a5f-6f52-414e-a431-bf5c6e68509a时,它确实可以工作。

反向和反向延迟函数不是用来传递GET参数的。这就是它失败的原因

像这样的方法应该会奏效:

url = reverse_lazy('embedded:activity_status')
params = urlencode({'unieke_code': self.object.access_link})
return '{0}?{1}'.format(url, params)

旁注:在Python 2中,您应该从urllib导入urlencode,而在Python 3中,它位于urllib中。parse

反向和反向延迟函数不用于传递GET参数。这就是它失败的原因

像这样的方法应该会奏效:

url = reverse_lazy('embedded:activity_status')
params = urlencode({'unieke_code': self.object.access_link})
return '{0}?{1}'.format(url, params)

旁注:在Python 2中,您应该从urllib导入urlencode,在Python 3中,它位于urllib.parse中,谢谢!我想我没有仔细阅读文档:)谢谢!我想我没有仔细阅读文档:)