- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我只是想运行一个简单的 {% if user.is_authenticated %}
。但它总是返回 False
。
这是我所有的文件。
views.py
from django.shortcuts import render_to_response, redirect
from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.contrib.auth.hashers import *
from forms import UserLoginForm
from models import UserLogin
def index(request):
return render_to_response('index.html', context_instance = RequestContext(request))
def login(request):
if request.method == 'POST':
form = UserLoginForm(request.POST or None)
if form.is_valid():
email_from_form = form.cleaned_data['email']
password_from_form = form.cleaned_data['password']
users = User.objects.filter(email = email_from_form)
for j in users:
if j.email == email_from_form:
pass_match = check_password(password_from_form, j.password)
if pass_match:
return redirect(reverse('profile'), context_instance = RequestContext(request))
else:
return HttpResponse('Entered password did not match')
else:
return HttpResponse('Entered email does not exist')
else:
return HttpResponse(form.errors)
else:
form = UserLoginForm()
return render_to_response('login.html', {'form':form}, context_instance = RequestContext(request))
def profile(request):
return render_to_response('profile.html', context_instance = RequestContext(request))
表单.py
from django import forms
class UserLoginForm(forms.Form):
email = forms.EmailField(max_length = 100)
password = forms.CharField(max_length = 100)
模型.py
from django.db import models
class UserLogin(models.Model):
email = models.EmailField(max_length = 100)
password = models.CharField(max_length = 100)
def __unicode__(self):
return self.email
profile.html
<html>
<head>
<title>profile</title>
</head>
<body>
{% if user.is_authenticated %}
Welcome user, you are loged in..
{% else %}
You are not logged in
{% endif %}
</body>
</html>
login.html
<html>
<head>
<title>login</title>
</head>
<body>
<form action="{% url login %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" id="submit" name="submit" value="Login" />
</form>
</body>
</html>
它总是返回您没有登录
我是 django 的新手,我不明白为什么会这样。
最佳答案
您永远不会让您的用户登录。尝试按照以下几行操作:
from django.contrib.auth import authenticate, login as auth_login
if request.method == 'POST':
form = UserLoginForm(request.POST or None)
if form.is_valid():
username = User.objects.get(email=form.cleaned_data['email'])
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user:
if user.is_active:
auth_login(request, user)
return HttpResponseRedirect(request.GET.get('next',
settings.LOGIN_REDIRECT_URL))
else:
error = 'Invalid username or password.'
为清楚起见,已更新为使用您的表格;排除错误检查。
关于python - Django 如果 user.is_authenticated 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13136057/
我正在使用 django-email-as-username使用电子邮件而不是用户名进行身份验证的应用程序,它的作用就像一个魅力。 现在,在 查看 我想打电话 if request.user.is_a
我正在我的 views.py 中检查用户是否经过身份验证。然而,Django 不断抛出异常 WSGIRequest 对象没有属性“is_authenticated”。我阅读了 stackoverflo
我正在使用 Flask-Login,我想通过调用 current_user.is_authenticated() 检查用户是否已登录。 我的 Flask 应用程序被组织成蓝图,其中包含一个主要的 __
在我的模板中,我有以下内容: {% if user.is_authenticated %} My Account
我正在尝试编写一个用于在 Django 中注销用户的测试。这是代码:urls.py from django.conf.urls import url from django.contrib impor
我的大部分 View 都需要登录。有没有办法指定所有 View 或 View 子集在继续之前必须让用户 is_authenticated() = True。如果没有,用户被重定向到登录页面? 最佳答案
我正在使用一个测试单元来验证 Flask-Login 的登录。这样做的目的是验证凭据不正确的用户的行为: def test_login_user(self): '''test
我正在查看 this website但似乎无法弄清楚如何做到这一点,因为它不起作用。我需要检查当前站点用户是否已登录(已通过身份验证),并且正在尝试: request.user.is_authenti
我刚刚安装了 django all-auth 模块,我的问题是用户 session 始终为 false。 user.is_authenticated 总是给我 false。我注册并使用我的凭据登录,然
我正在努力解决 is_authenticated返回 True当我没有登录时: u = request.user if u.is_authenticated: raise Exception(
这个问题已经有答案了: Flask-Login raises TypeError: 'bool' object is not callable when trying to override is_a
在我的模板 login.html 中,我有: {% if form.errors %} {% if user.is_authenticated %} Your account does
使用 GAE/Django-nonrel 创建简单的应用程序(我认为问题不是特定于 GAE 或 nonrel 分支,最像 PEBKAC 作为 python/django noob,并且会在基本的 dj
在我的 base.html 中,user.is_authenticated 总是返回 false... 我希望基本模板在“登录和注销”之间切换 帮助将不胜感激 基础.html {%
我正在尝试将模板标签/包含标签合并到网站的侧边栏中。当我输入时,页面的主要部分会正确更新: {% if user.is_authenticated %} Hello {{ user.userna
我只是想运行一个简单的 {% if user.is_authenticated %} 。但它总是返回 False。 这是我所有的文件。 views.py from django.shortcuts i
谁能告诉我为什么在下面的代码中我被重定向到 yahoo.com 而不是 google.com? 网址 urlpatterns = patterns('', (r'^$', initialRequest
我正在学习 Flask Mega-Tutorial,我遇到了这段代码: class User(db.Model): id = db.Column(db.Integer, primary_key
我没有看到使用 @login_required 装饰器和 is_authenticated() 之间的明显区别:不知何故,我认为它们执行类似的检查(虽然不完全)。 假设我的 views.py 中有一个
我有一个奇怪的问题,在我的设置文件中,所有需要为模板中的 user.is_authenticated 使用启用的内容都已启用。 我有以下模板标签代码: from django import templ
我是一名优秀的程序员,十分优秀!