Python django身份验证登录不工作

Python django身份验证登录不工作,python,django,Python,Django,我使用的是Django 1.11.4,无法理解为什么这段代码不起作用 在登录之前和之后,我试图请求.user.is\u authenticated(),但在这两种情况下,我都得到False 如果我从管理员处登录,则同一用户登录 user = authenticate(username='myuser',password='mypassword') if user is not None: if user.is_active: print("before",request.

我使用的是Django 1.11.4,无法理解为什么这段代码不起作用 在登录之前和之后,我试图
请求.user.is\u authenticated()
,但在这两种情况下,我都得到False

如果我从管理员处登录,则同一用户登录

user = authenticate(username='myuser',password='mypassword')
if user is not None:
    if user.is_active:
        print("before",request.user.is_authenticated())
        login(request,user)
        print("after",request.user.is_authenticated())
        return HttpResponse("login success")
    else:
        return HttpResponse("account is disabled")
else:
        return HttpResponse("invalid login")

我认为这是因为您设置了一个新变量(user)

但如果再次引用request.user,则在内部

print(request.user.is_authenticated())
删除请求。。。所以

print(user.is_authenticated())

我认为这是因为您设置了一个新变量(user)

但如果再次引用request.user,则在内部

print(request.user.is_authenticated())
删除请求。。。所以

print(user.is_authenticated())

当然,您可以实现自己的登录机制,但是,为什么不在更容易理解和添加的情况下特别使用内置机制呢

首先导入django.contrib.auth.views模块,并为登录和注销视图添加URL路由:

from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^login/$', auth_views.login, name='login'),
    url(r'^logout/$', auth_views.logout, name='logout'),
    url(r'^admin/', admin.site.urls),
]
默认情况下,
django.contrib.auth.views.login
视图将尝试呈现
registration/login.html
模板。因此,基本配置是创建一个名为
registration
的文件夹,并在其中放置一个
login.html
模板,如下所示:

% extends 'base.html' %}

{% block title %}Login{% endblock %}

{% block content %}
  <h2>Login</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Login</button>
  </form>
{% endblock %}
%extends'base.html%}
{%block title%}登录名{%endblock%}
{%block content%}
登录
{%csrf_令牌%}
{{form.as_p}}
登录
{%endblock%}

这个简单的示例已经验证了用户名和密码,并正确地验证了用户。然后您可以使用decorator。

当然您可以实现自己的登录机制,但是,为什么不在更容易理解和添加的情况下特别使用内置机制呢

首先导入django.contrib.auth.views模块,并为登录和注销视图添加URL路由:

from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^login/$', auth_views.login, name='login'),
    url(r'^logout/$', auth_views.logout, name='logout'),
    url(r'^admin/', admin.site.urls),
]
默认情况下,
django.contrib.auth.views.login
视图将尝试呈现
registration/login.html
模板。因此,基本配置是创建一个名为
registration
的文件夹,并在其中放置一个
login.html
模板,如下所示:

% extends 'base.html' %}

{% block title %}Login{% endblock %}

{% block content %}
  <h2>Login</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Login</button>
  </form>
{% endblock %}
%extends'base.html%}
{%block title%}登录名{%endblock%}
{%block content%}
登录
{%csrf_令牌%}
{{form.as_p}}
登录
{%endblock%}

这个简单的示例已经验证了用户名和密码,并正确地验证了用户。然后您可以使用decorator。

您是如何在视图中导入
登录名的?您是如何在视图中导入
登录名的?