【问题标题】:having models directory and AUTH_USER_MODEL具有模型目录和 AUTH_USER_MODEL
【发布时间】:2013-10-31 05:17:43
【问题描述】:

我有myApp/models/profiles.py 而不是myApp/models.py(用于对相关模型进行分组)

在这种情况下你如何设置AUTH_USER_MODEL

因为 auth 只接受“foo.bar”模式。

   app_label, model_name = settings.AUTH_USER_MODEL.split('.')

【问题讨论】:

  • 尝试将from profiles import *添加到myApp/models/__init__.py,然后使用AUTH_USER_MODEL = 'myApp.MyModel'
  • 我收到不同的错误“配置不当:AUTH_USER_MODEL 指的是尚未安装的模型'common.CusomUser'”
  • 哦,拍我吧.. 客户用户..
  • 我已经发布了我的信息作为答案。为了任何从谷歌登陆这里的人,你应该接受任何对你有帮助的人:)

标签: django model


【解决方案1】:

Django 期望任何给定应用程序的模型都在app.models 中。如果您想使用这种文件结构,您仍然需要确保是这种情况。最简单的方法是在myApp/models/__init__.py 中添加from profiles import *,然后照常使用AUTH_USER_MODEL

例如,你有myApp/models/profiles.pymyApp/models/actions.py 你的myApp/models/__init__.py 应该是

from profiles import *
from actions import *

请记住确保您没有任何名称冲突,并且您可能希望在每个子包中使用设置您的 __all__ 值。

【讨论】:

  • 哦。很高兴知道 all 是明确列出要从包中导出的名称。谢谢
  • 你是个救命的人,这花了我几个小时
【解决方案2】:

您可以直接传递类,也可以传递“app.model”。 django 只注册在app.models 模块中定义的类,所以你需要在modelsinit 中导入类。由于无论如何您都将在 init 中导入模型,因此您无需在外键中指定类的完整路径。

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2021-10-07
    相关资源
    最近更新 更多