python - django.conf.global_settings 何时加载?

标签 python django django-settings

我使用“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.pysyncdb 时,我的控制台窗口被 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.

所以,我有两个问题。

  1. 问题是我将settings.py 与每个环境分开了。
  2. from django.global_settings import AUTH_USER_MODEL是否导入myproject.settings

这次我解决了from myproject.settings.base import AUTH_USER_MODEL

最佳答案

global_settings 顾名思义,是 Django 提供的全局默认设置。所以默认值当然是“auth.User”。

由于您在自己的设置中覆盖了它,因此您应该导入它。但正如文档所述,导入当前设置的方式始终是 from django.conf import settings,而不是在项目中显式导入设置文件。

另请注意,您应该使用 django.contrib.auth< 中的 get_user_model() ,而不是在此处使用这些设置 - 这可能会导致启动时出现一些依赖性问题,如 the documentation 中所述.

关于python - django.conf.global_settings 何时加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216169/

相关文章:

python - Django settings.py 未更新

python - Gunicorn 创建了多少应用程序实例

python - python flask web应用程序中的全局变量

python - Django:我在哪里调用settings.configure?

python - "ProgrammingError: column "genre_id "of relation "music_album "does not exist"而该列确实存在

python - 如何将模型方法暴露给 django-rest-framework

Django: "collectstatic"也应该收集媒体文件吗?

python - 如何在 Python 中创建新的未知或动态/扩展对象

python - 使用 Python 更新 Evernote 笔记

python - 如何在 Django 中使用 Join?