问题描述
我的用户注册功能有问题。我的目标是在数据库中检查代码以查看用户名是否已被占用,并让用户知道它是否已被占用。目前,第一部分的代码运行良好,但第二部分不起作用。出现消息“出现问题”,但不是特定于用户名“此用户已存在”的消息。我尝试执行在堆栈中找到的以下选项,但没有任何效果:
- 首先更改表单并引发 ValidationError 并在前面检查错误
- 第二个在函数“user_register”中验证用户是否已经被占用并引发消息。错误,这是我代码中的选项(我在这里收到错误)
- 第三,尝试用户是否存在并在上下文中带来错误
有人知道我的代码有什么问题吗?这可能是非常愚蠢的事情。
这是我的view.py
def user_register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = User.objects.create_user(username=username,password=password)
group = Group.objects.get(name='Stroller')
group.user_set.add(user)
user.save()
login(request,user)
messages.success(request,"New account successfully created" )
return redirect('accounts:dashboard')
else:
if User.objects.get(username=form.cleaned_data['username']).exists():
messages.error(request,"This user already exists,please chose another name")
return redirect('accounts:create_user')
else:
messages.error(request,"Something went wrong - please check again the form")
return redirect('accounts:create_user')
else:
form = UserCreationForm()
return render(request,'dist/sign-up.html',{'form':form})
这是我的模板
<h1 class=display-4>Sign Up</h1>
<hr>
{% for message in messages %}
<div class="alert {{ message.tags }} alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
{{ message }}
</div>
{% endfor %}
<div class="row mx-n2">
<form action="{% url 'accounts:create_user' %}" method="POST">
{% csrf_token %}
<p>Please,enter a valid username <br>{{ form.username }} <br><i>Usernames are unique on the platform</i></p>
<p>Please,enter a valid password <br>{{ form.password1 }}<br>
<i>Not too similar to your personal information</i><br>
<i>Not too common</i><br>
<i>At least 8 characters</i><br>
<i>Not only numbers</i>
</p>
<p>Please,enter the same password as before <br>{{ form.password2 }}<br></p>
<button type="submit" class="btn btn-dark">Done</button>
</form>
</div>
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)