【问题标题】:unable to specify custom Django Model from nested app as AUTH_USER_MODEL无法将嵌套应用程序中的自定义 Django 模型指定为 AUTH_USER_MODEL
【发布时间】:2019-08-15 12:16:46
【问题描述】:

如果该模型在嵌套应用程序中,我无法指定自定义AUTH_USER_MODEL

这是一些项目结构:

├── project
│   ├── settings.py
│   ├── my_parent_app
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   └── my_child_app
│   │       ├── __init__.py
│   │       ├── apps.py
│   │       └── models.py

这里有一些代码:

project/my_parent_app/my_child_app/models.py:

from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
  is_a_nice_user = models.BooleanField(default=False)

项目/settings.py:

INSTALLED_APPS = [
  'my_parent_app',
  'my_parent_app.my_child_app',
]  
AUTH_USER_MODEL = 'my_parent_app.my_child_app.User'

当我尝试做任何事情时,我得到这个错误:

ValueError:无效的模型引用“my_parent_app.my_child_app.User”。细绳 模型引用的格式必须为“app_label.ModelName”。

这与this question 非常相似。但是,如果不将my_child_app 设为单独的顶级应用程序,我该如何解决呢?

【问题讨论】:

    标签: django


    【解决方案1】:

    AUTH_USER_MODEL 的格式必须为 app_label.model_name

    INSTALLED_APPS = [
        'my_parent_app',
        'my_parent_app.my_child_app',
    ]  
    AUTH_USER_MODEL = 'my_child_app.User'
    

    【讨论】:

    • 谢谢。这样可行。这个没有工作的原因是my_child_app实际上被称为users,这可能与现有的Django app_label冲突。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2011-12-15
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多