我正在尝试在注册后将用户重定向到创建配置文件表单。因为我不知道如何使用动态URL进行LOGIN_REDIRECT_URL。我尝试将这个小技巧链接到静态视图然后最终到动态视图使用redirect
。它会给出错误Reverse for 'add_profile' with arguments '()' and keyword arguments '{'username': u'badguy'}' not found. 0 pattern(s) tried: []
('badguy'确实是刚注册用户的用户名')。从错误中,它显然是将用户名传递给视图。我的代码是:
settings.py
LOGIN_REDIRECT_URL = '/prof-change/gdyu734648dgey83y37gyyeyu8g/'
urls.py
url(r'^prof-change/gdyu734648dgey83y37gyyeyu8g/',views.login_redir,name='login_redir'),
url(r'^create-profile/(?P<username>\w+)/$',views.add_profile,name='create-profile'),
views.py
def login_redir(request):
user=get_object_or_404(User,username=request.user.username)
username=user.username
return redirect('add_profile',username=username)
def add_profile(request,username):
userman=User.objects.get(username=username)
........
........
答案 0 :(得分:0)
当您撤消网址时(包括使用带有redirect
快捷方式的网址名称时),您应该使用网址格式的名称,而不是视图。网址格式为name='create-profile'
,因此请使用它。
redirect('create-profile', username=username)