Python 用户模型未进行身份验证,但超级用户进行身份验证?在Django
我从命令行通过createsuperuser创建了一个超级用户。我创建了以下用户类Python 用户模型未进行身份验证,但超级用户进行身份验证?在Django,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我从命令行通过createsuperuser创建了一个超级用户。我创建了以下用户类 class Teacher(AbstractUser): """ User model """ first_name = models.CharField(max_length=64) subject = models.CharField(max_length=64) USERNAME_FIELD = 'username
class Teacher(AbstractUser):
""" User model """
first_name = models.CharField(max_length=64)
subject = models.CharField(max_length=64)
USERNAME_FIELD = 'username'
然后我通过管理屏幕创建一个用户;但是当我想使用以下代码进行身份验证时;it用户总是不返回任何值。除非我使用超级用户帐户
def loginview(request):
"""Creates Login Screen"""
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
# Authenticate User via Django login system.
user = authenticate(request, username=username, password=password)
print(user)
if user is not None:
# Confirm credentials are correct.
auth_login(request, user)
return render(request, "score_board/points.html")
else:
return render(request, "score_board/loginview.html",
{"message": "Wrong username/password!"})
else:
return render(request, "score_board/loginview.html")
假设您没有更新
settings.py
中的AUTH\u USER\u MODEL
变量,那么当您运行python manage.py createsuperuser
django时,它将使用
在上面的代码片段中,您正在定义一个新的
Teacher
模型,该模型继承自AbstractBaseUser
(行为类似于Django的User
模型),但您没有覆盖设置文件中的AUTH\u User\u模型。因此,Django在调用authenticate()
(更多上下文)时会查看同一个表(auth.User
)我的settings.py中有auth\u User\u MODEL='score\u board.Teacher'
。这就是你说的吗?因此,问题仍然存在。除非我遗漏了什么。是的。分享更多关于这方面的信息,如:什么是打印(用户)
返回?如果我使用超级用户,它返回:管理,
如果我使用在管理屏幕中创建的任何其他帐户,它返回无
或者它没有在正确的表中查找(auth.user vs.Teacher)或者不满足以下条件之一:我认为可能与密码有关。当我创建用户时,它不会散列任何密码。当我成为超级用户时,它确实是这样。有什么想法吗?