Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 为从render_到_响应的会话变量检查编写更好的代码_Django_Session - Fatal编程技术网

Django 为从render_到_响应的会话变量检查编写更好的代码

Django 为从render_到_响应的会话变量检查编写更好的代码,django,session,Django,Session,这是检查会话中用户名变量和输出(取决于是否存在)的最有效和干净的方法吗?是“您已登录”还是“您已注销” PYTHON(DJANGO) HTML {%if请求%} 你已经登录了。{%else%} 你没有登录。{%endif%} 如果您正在使用和,并且两者都在您的中,您可以简单地使用: {% if request.user.is_authenticated %} You're logged in. {% else %} You're not logged in. {% endif %

这是检查会话中用户名变量和输出(取决于是否存在)的最有效和干净的方法吗?是“您已登录”还是“您已注销”

PYTHON(DJANGO)

HTML

{%if请求%} 你已经登录了。{%else%} 你没有登录。{%endif%}

如果您正在使用和,并且两者都在您的中,您可以简单地使用:

{% if request.user.is_authenticated %}
    You're logged in.
{% else %}
    You're not logged in.
{% endif %}
如果您正在使用和,并且两者都在您的中,您可以简单地使用:

{% if request.user.is_authenticated %}
    You're logged in.
{% else %}
    You're not logged in.
{% endif %}

Django附带了一些模板上下文处理器,它们只是将变量插入到站点上呈现的每个模板中的函数

正如@Jack所说,其中一个被称为
django.core.context\u processors.auth
。这将在每个模板中插入一个名为
user
的变量,并且在默认情况下处于启用状态

因此,要确定用户是否登录,您应该在模板中使用以下代码:

{% if user.is_authenticated %}
    You're logged in.
{% else %}
    You're not logged in.
{% endif %}

使用Jack给出的代码的问题是,
user
变量始终存在,因此它将始终计算为
True
(只要您使用的是
django.core.context\u processors.request
上下文处理器,默认情况下未启用)。因此,要确定用户是否实际登录,必须使用
is_authenticated()
方法。

Django附带了一些模板上下文处理器-这些只是将变量插入到站点上呈现的每个模板中的函数

正如@Jack所说,其中一个被称为
django.core.context\u processors.auth
。这将在每个模板中插入一个名为
user
的变量,并且在默认情况下处于启用状态

因此,要确定用户是否登录,您应该在模板中使用以下代码:

{% if user.is_authenticated %}
    You're logged in.
{% else %}
    You're not logged in.
{% endif %}

使用Jack给出的代码的问题是,
user
变量始终存在,因此它将始终计算为
True
(只要您使用的是
django.core.context\u processors.request
上下文处理器,默认情况下未启用)。因此,要确定用户是否实际登录,您必须使用
is\u authenticated()
方法。

-1
请求。用户始终存在,因为未经身份验证的用户(每个用户)也是用户。您是对的。我习惯于检查特定的权限,而不是检查它们是否经过身份验证,所以我忘了在那里插入这一点。我已经解决了。-1
请求。用户始终存在,因为未经身份验证的用户(每个用户)也是用户。你是对的。我习惯于检查特定的权限,而不是检查它们是否经过身份验证,所以我忘了在那里插入这一点。我把它修好了。