首页 > 解决方案 > 如何在 django 中正确显示 Flash 消息

问题描述

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

视图.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') 

当我进入登录页面时,即使我刚到那里,它也只会显示错误的用户名或密码

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

标签: djangodjango-messages

解决方案


在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 %}

推荐阅读