LookupError: App 'accounts' has no 'User' model
这个错误通常发生在使用 Django 框架时,特别是在自定义用户模型(User Model)的情况下。Django 默认的用户模型是 django.contrib.auth.models.User
,但有时我们需要自定义用户模型以满足特定需求。当 Django 在 accounts
应用中找不到 User
模型时,就会抛出这个错误。
accounts
应用可能没有被正确安装到 Django 项目中。accounts
应用中没有定义 User
模型。AUTH_USER_MODEL
设置不正确,指向了一个不存在的模型。确保 accounts
应用已经添加到 INSTALLED_APPS
中:
# settings.py
INSTALLED_APPS = [
...
'accounts',
...
]
在 accounts
应用中定义自定义用户模型。例如:
# accounts/models.py
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
# 添加自定义字段
birth_date = models.DateField(null=True, blank=True)
AUTH_USER_MODEL
在 settings.py
中设置 AUTH_USER_MODEL
指向自定义用户模型:
# settings.py
AUTH_USER_MODEL = 'accounts.CustomUser'
确保运行迁移命令以创建自定义用户模型的数据库表:
python manage.py makemigrations accounts
python manage.py migrate
以下是一个完整的示例,展示了如何在 Django 项目中自定义用户模型并正确配置:
accounts/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
birth_date = models.DateField(null=True, blank=True)
settings.py
INSTALLED_APPS = [
...
'accounts',
...
]
AUTH_USER_MODEL = 'accounts.CustomUser'
python manage.py makemigrations accounts
python manage.py migrate
通过以上步骤,你应该能够解决 LookupError: App 'accounts' has no 'User' model
错误,并成功使用自定义用户模型。
领取专属 10元无门槛券
手把手带您无忧上云