注册时,用户不会看到 Django 中的消息错误

问题描述

我的用户注册功能有问题。我的目标是在数据库中检查代码以查看用户名是否已被占用,并让用户知道它是否已被占用。目前,第一部分的代码运行良好,但第二部分不起作用。出现消息“出现问题”,但不是特定于用户名“此用户已存在”的消息。我尝试执行在堆栈中找到的以下选项,但没有任何效果

有人知道我的代码有什么问题吗?这可能是非常愚蠢的事情。

这是我的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">&times;</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 (将#修改为@)