首页 > 解决方案 > 使用 DJango 在基本 HTML 中动态显示

问题描述

我是 DJango 的新手,我正在创建一个网站。我已经创建了一个带有 NAV 栏的基本 HTML 页面,它将在所有页面中使用。我想在所有页面的第一行显示消息“Welcome 'username'”。

我在views.py中编写了以下代码

def getusername(request):
uname=request.getusername()
return render(request,'main.html',{'uname':uname})

在定义标题和中殿栏后的 main.html 中,我有以下 html 代码

<span class="label label-default">Welcome{{uname}}</span>

当我运行此代码时,我可以在所有页面中查看 NavBar 扩展基本页面(main.html)

但欢迎消息不获取用户名。

我在 urls.py 中配置了以下内容

path("", views.getusername,name='getusername')

注意:即使我硬编码要从views.py返回的字符串,该字符串也不会显示为欢迎消息的一部分

标签: htmldjango

解决方案


在每个模板中,您都可以访问用户对象。您可以检查用户是否已通过身份验证:

{% if user.is_authenticated %}
    Welcome, {{ user.username }}
{% else %}
    # show register or(and) login button
{% endif %}

推荐阅读