拥有模型目录和AUTH_USER_MODEL

5

我将myApp/models.py替换为myApp/models/profiles.py(以分组相关的模型)。

在这种情况下,您如何设置AUTH_USER_MODEL

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

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

1
尝试在 myApp/models/__init__.py 中添加 from profiles import *,然后使用 AUTH_USER_MODEL = 'myApp.MyModel' - DanielB
我收到了不同的错误消息:"ImproperlyConfigured:AUTH_USER_MODEL引用了尚未安装的'model 'common.CustomUser''。" - eugene
1
哦,糟糕了.. 自定义用户.. - eugene
我已经将我的信息发布为答案。出于任何从Google到达此处的人的考虑,您应该接受任何有帮助的答案 :) - DanielB
2个回答

6
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" 是用来明确列出你想从包中导出的名称的。谢谢。 - eugene
你真是个救命恩人,这让我花了好几个小时。 - Amin
当我在模块名前使用点号时,这对我起作用了。"from .profiles import *" - Ali

0

您可以直接传递类或'app.model'。Django仅注册在app.models模块中定义的类,因此您需要在models init中导入该类。由于您将在init中导入模型,因此在外键中不需要指定类的完整路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接