6-3-登陆-2

2017-01-26  本文已影响0人  11010tianyi

通过邮箱登陆

<code>AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend',
)</code>

元组一点要加“,”


<code>from django.contrib.auth.backends import ModelBackend
from .models import UserProfile
class CustomBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(username = username)
if user.check_password(password): #UserProfile继承的是AbstractUser的方法#
return user
except Exception as e:
return None
</code>

django密码存储的是密文,无法查询
UserProfile继承的是AbstractUser


<code>
try:
user = UserProfile.objects.get(username = username)
if user is not None:
</code>

F8完成当前debug F6调试进入debug下一步


<code>
from django.db.models import Q
user = UserProfile.objects.get(Q(username = username)|Q(email=username))
</code>

并集的查询 也可以做并集和交集的混用 在后面加,即可加入


用户密码错误提醒
<code>else:
return render(request, "login.html", {"msg":"用户名或密码错误!"})</code>

在view中加入msg
再到login中加入{{ msg }}

上一篇下一篇

猜你喜欢

热点阅读