Python 用户模型未进行身份验证,但超级用户进行身份验证?在Django

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

我从命令行通过createsuperuser创建了一个超级用户。我创建了以下用户类

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)或者不满足以下条件之一:我认为可能与密码有关。当我创建用户时,它不会散列任何密码。当我成为超级用户时,它确实是这样。有什么想法吗?