我如何在 django 中正确显示 Flash 消息

时间:2021-07-18 10:54:42

标签: django django-messages

我有这个视图功能,需要在用户注册时向他们发送一条闪消息。现在运行良好,但问题是我设置了一条错误消息以在用户名或密码不正确时显示,并且默认情况下始终显示在那里。这是我的代码

views.py

def signup(request):
    form = CreateUserForm() 
    if request.method == 'POST':
        form = CreateUserForm(request.POST) 
        if form.is_valid():
            form.save()
            user = form.cleaned_data.get('username') 
     
       messages.success(request, 'An account was created for ' + user) 
    return redirect('login') 


def login_user(request):
    username = request.POST.get('username') 
    password = 
 request.POST.get('password')
    user = authenticate(username=username, password=password) 
    if user is not None:
        login(request, user) 
        return redirect('home') 
    else:
        messages.info(request, 'Incorrect Username or Password') 

当我进入登录页面时,它只是显示我不正确的用户名或密码,即使我刚到那里

如何让它只在用户名或密码不正确时显示

1 个答案:

答案 0 :(得分:0)

在mesasge.info重定向到再次登录页面后

messages.info(request, 'User not exist')
return redirect('login')

在 html 文件中

{% for message in messages %}
      <div style="width: 350px; margin-left:500px; " class="alert alert-{{ message.tags }} " id="msg" role="alert">
      {{ message }}
        
{% endfor %}