在我正在构建的Django应用程序中,我希望用户创建过程如下:在用户注册时,如果有效,则重定向到创建LIST对象,如果有效,则重定向到将要用作仪表板的仪表板。刚创建的LIST对象。我的views.py如下:def user_signup(request): if request.method == 'POST': form = forms.UserSignupForm(data=request.POST) if form.is_valid(): user = form.save() g = Group.objects.get(name='test_group') g.user_set.add(user) # log user in username = form.cleaned_data['username'] password = form.cleaned_data['password1'] user = authenticate(username=username, password=password) login(request, user) messages.success(request, u'Welcome to Social FollowUp') return redirect('user_create') else: form = forms.UserSignupForm() return TemplateResponse(request, 'user_signup.html', { 'form': form, })@login_required@permission_required('')def user_create(request): if request.method == 'POST': list_form = forms.ListForm(request.POST) if list_form.is_valid(): list_create = list_form.save() messages.success(request, 'List {0} created'.format(list_create.list_id)) return redirect('user_dashboard') else: list_form = forms.ListForm() return TemplateResponse(request, 'dashboard/create.html', {'list_form': list_form, })def user_dashboard(request, list_id):try: list_id = models.List.objects.get(pk=list_id)except models.List.DoesNotExist: raise Http404return TemplateResponse(request, 'dashboard/view.html', {'list_id': list_id})我对这些视图的urls.py如下:url(r'user/signup/$', views.user_signup, name='user_signup'),url(r'u/dashboard/(?P<list_id>\d+)/$', views.user_dashboard, name='user_dashboard'),url(r'u/list/create/$', views.user_create, name='user_create'),当我尝试执行该过程时,前两个视图可以正常工作。但是,当我重定向到user_dashboard时,出现以下错误:Reverse for 'user_dashboard' with arguments '' and keyword arguments '{}' not found.
2 回答

蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
尝试:
return redirect(reverse('user_dashboard', args=(2,)))
您的验证码
return redirect('user_dashboard')
将无法正常工作,因为在您的网址格式中,您有
url(r'u/dashboard/(?P<list_id>\d+)/$', views.user_dashboard, name='user_dashboard'),
这需要 list_id
作为参数。

炎炎设计
TA贡献1808条经验 获得超4个赞
你不应该需要使用redirect(reverse(...))
,因为redirect()
同时接受args
和kwargs
并将它们传递给reverse
。所以:redirect('user_dashboard', list_id=2)
应该工作。
添加回答
举报
0/150
提交
取消