如何使消息显示在模板中

时间:2019-07-17 11:57:38

标签: javascript django templates

我有一个登录django应用,我试图在其中通知用户凭据是否错误或登录是否成功。

问题是我在django中使用了消息框架,但是它没有出现在模板中。

views.py

from django.contrib import messages


def login_request(request):
    if request.method == "POST":
        username = request.POST['lognName']
        password = request.POST['lognCode']
        user = authenticate(username = username,password = password)
        if user is not None:
            login(request,user)
            messages.info(request,f"You are now logged in as {username}")
            return redirect("main")
        else:
            messages.error(request,"invalid username or password")

    return render(request,'login.html')

login.html

{% if messages %}
    {% for message in messages %}
        <script>M.toast({html:"{{message}}",classes:'blue rounded',displaylength:2000});</script>
    {% endfor %}
{% endif %}

即使我试图在if语句之外使用,吐司也不起作用

1 个答案:

答案 0 :(得分:0)

尝试在其中设置脚本 $(document).ready(function($) { /* foreach message M.toast(...) */ });

我将在一个单独的js文件中亲自进行操作。

如果您想从js访问messages对象,请查看以下链接:Django Template Variables and Javascript