【发布时间】:2014-04-22 09:54:53
【问题描述】:
我使用“AbstractUser”模型创建了以下自定义用户模型。
from django.conf.global_settings import AUTH_USER_MODEL
MyCustomUser(AbstractUser):
regions = models.ManyToManyField(to='SomeModel')
class Meta:
app_label = 'myapp'
MyObject(models.Model):
owner = models.ForeignKey(to=AUTH_USER_MODEL)
我将AUTH_USER_MODEL 设置为settings/base.py(我将每个环境的设置文件分开。例如:settings/base.py,settings/development.py)。
AUTH_USER_MODEL = 'myapp.MyCustomUser'
当我执行python manage.py syncdb 时,我的控制台窗口被 Django 弹出了!
myapp.MyObject: 'owner' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
所以,我有两个问题。
- 问题是我把settings.py分开了每个环境。
-
from django.global_settings import AUTH_USER_MODEL是否导入myproject.settings?
而我这次解决了from myproject.settings.base import AUTH_USER_MODEL。
【问题讨论】:
-
非常感谢!!我知道 global_settings 是您回答的 django 默认设置。 get_user_model 方法非常有用。我从现在开始在我的项目中使用
get_user_model方法!
标签: python django django-settings