【发布时间】:2021-01-25 16:05:19
【问题描述】:
我正在构建一个 BlogApp 并构建一个注册视图,但是当我打开浏览器时它会显示给我:-
未找到带有参数“(None,)”的“signup_view”的反向操作。尝试了 1 种模式:['accounts/signup_view/(?P
[0-9]+)/$']
views.py
def signup_view(request,user_id):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('mains:profile',user_id=user_id)
else:
form = SignUpForm()
return render(request, 'registration/signup.html', {'form': form})
urls.py
path('signup_view/<int:user_id>',views.signup_view, name='signup_view'),
登录.html
<a href="{% url 'users:signup_view' user.id %}">Register Here.</a>
问题
当我打开浏览器时,它一直显示Reverse for 'signup_view' with arguments '(None,)' not found. 1 pattern(s) tried: ['accounts/signup_view/(?P<user_id>[0-9]+)/$']。
我不知道我错过了什么。
任何帮助将不胜感激。
提前致谢
【问题讨论】:
-
您可以尝试将您的 html 链接更改为 {% url 'users:signup_view' request.user.id %}
-
它不工作。仍然显示该错误
-
在这种情况下,您从brandonris1 得到的答案似乎是正确的。在创建用户之前,您不应该尝试获取 user.id。
-
@Progam 当你调用
form.save()时,它会返回创建的用户实例,它会有一个id,你可以使用它来重定向。 -
@AbdulAzizBarkat,您的意思是 id 而不是 user_id。如果我没记错的话,你能上传作为答案吗?请
标签: python html django django-views