我正在使用带有内置和自定义身份验证后端的自定义用户模型。用户名密码登录的默认密码和基于uid的登录密码的自定义密码登录工作正常,但模板中没有'user'(超级用户除外)。last_login也未在数据库中更新。这是我的代码
backend.py
from support.models import CustomUser
class UsernameIdModelBackend(object):
def authenticate(self, request, uid=None):
try:
user= CustomUser.objects.get(uid=uid)
return user
except CustomUser.DoesNotExist:
return None
def get_user(self, user_id):
try:
return CustomUser.objects.get(pk=user_id)
except CustomUser.DoesNotExist:
return None
models.py
from django.db import models
# Create your models here.
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
uid = models.CharField(max_length=50)
我哪里出错了。
编辑:
我正在使用if.user_is_authenticated在“用户”之前。删除if条件后,我看到的是AnonymousUser。