在我正在構(gòu)建的Django應(yīng)用程序中,我希望用戶創(chuàng)建過程如下:在用戶注冊時,如果有效,則重定向到創(chuàng)建LIST對象,如果有效,則重定向到將要用作儀表板的儀表板。剛創(chuàng)建的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'),當(dāng)我嘗試執(zhí)行該過程時,前兩個視圖可以正常工作。但是,當(dāng)我重定向到user_dashboard時,出現(xiàn)以下錯誤:Reverse for 'user_dashboard' with arguments '' and keyword arguments '{}' not found.
2 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗 獲得超8個贊
嘗試:
return redirect(reverse('user_dashboard', args=(2,)))
您的驗證碼
return redirect('user_dashboard')
將無法正常工作,因為在您的網(wǎng)址格式中,您有
url(r'u/dashboard/(?P<list_id>\d+)/$', views.user_dashboard, name='user_dashboard'),
這需要 list_id
作為參數(shù)。

炎炎設(shè)計
TA貢獻(xiàn)1808條經(jīng)驗 獲得超4個贊
你不應(yīng)該需要使用redirect(reverse(...))
,因為redirect()
同時接受args
和kwargs
并將它們傳遞給reverse
。所以:redirect('user_dashboard', list_id=2)
應(yīng)該工作。
添加回答
舉報
0/150
提交
取消