【发布时间】:2020-04-27 00:48:35
【问题描述】:
我有以下型号:
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
class User(AbstractUser):
username = models.CharField(blank=True, null=True)
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'first_name', 'last_name']
def __str__(self):
return "{}".format(self.email)
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='profile')
dob = models.DateField()
phone = models.CharField(max_length=15)
active = models.BooleanField(default=True)
receive_newsletter = models.BooleanField(default=False, blank=True)
所以我将settings.py 中的默认AUTH_USER_MODEL 改写为:
AUTH_USER_MODEL = 'myapp.User'
但在运行迁移时出现以下错误:
"AUTH_USER_MODEL 引用了尚未安装的模型 '%s'" % settings.AUTH_USER_MODEL django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL 是指模型 'kofiapi.User' 尚未被 已安装
我的项目结构如下:
- 我的应用程序
- API
- 用户
- __init__.py
- models.py
- 用户
- API
- 我的项目
- settings.py
我尝试了以下变体,但都失败了:
AUTH_USER_MODEL = 'myapp.api.users.User'
AUTH_USER_MODEL = 'myapp.users.User'
AUTH_USER_MODEL = 'myapp.api.User'
AUTH_USER_MODEL = 'myapp.User'
任何迹象表明我做错了什么?
【问题讨论】:
-
您迁移新模型了吗?
-
在我的情况下,我的一个文件(在
models.py)中有一个from django.contrib.auth import forms,从中调用了get_user_model()。通过删除这些导入解决了问题。
标签: django python-3.x django-models django-rest-framework