【问题标题】:Field defines a relation with model 'MODEL', which is either not installed, or is abstract字段定义了与模型“模型”的关系,该模型要么未安装,要么是抽象的
【发布时间】:2016-12-14 12:57:02
【问题描述】:

在 Django 中使用自定义用户模型对我来说就像生活在地狱中。在花了无数个小时试图完成它之后,现在我面临着新问题:一旦我添加了一些依赖于我的自定义用户模型的其他应用程序,我就会看到: 例如,一旦我添加'django.contrib.admin',我就会看到错误

admin.LogEntry.user: (fields.E300) Field defines a relation with model 'main.Usr', which is either not installed, or is abstract.
admin.LogEntry.user: (fields.E307) The field admin.LogEntry.user was declared with a lazy reference to 'main.usr', but app 'main' doesn't provide model 'usr'.

我的设置是这样的

AUTH_USER_MODEL = 'main.Usr'

INSTALLED_APPS = [
    'django.contrib.auth',
    'main', # my app
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.staticfiles',
    'debug_toolbar',
    'django.contrib.postgres',
]

【问题讨论】:

  • 不确定这是否会产生影响,但请尝试将您的应用移至列表底部。

标签: django django-models


【解决方案1】:

我必须禁止这些系统检查才能加载 django。 我把这个放在我的settings.py

SILENCED_SYSTEM_CHECKS = ['fields.E300', 'fields.E307']

除非你真的知道指定模型的表确实存在于数据库中,否则不建议开启此行。

【讨论】:

  • 谢谢!这个设置让我们看到了真正的错误 (Migration x.000X dependencies reference nonexistent parent node)!
猜你喜欢
  • 1970-01-01
  • 2015-04-21
  • 2022-01-25
  • 1970-01-01
  • 2013-04-20
  • 2020-08-03
  • 2021-08-17
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多