【发布时间】:2014-07-02 03:27:05
【问题描述】:
使用 Django1.6 一切正常,但升级到 Django1.7 时显示“应用程序注册表未准备好”,因此我将模型中的 get_user_model() 更改为 settings.AUTH_USER_MODEL。
class MyModel(models.Model, SomeMixin):
content = models.TextField()
posted_by = models.ForeignKey(settings.AUTH_USER_MODEL,
related_name='name1')
note = models.ForeignKey(SomeModel, related_name='name2')
created = models.DateTimeField(auto_now_add=True)
现在,在启动服务器时,我收到以下错误消息。
错误: apps.MyModel.posted_by:(fields.E304)“model_field”的反向访问器与“model_field”的反向访问器冲突。 提示:在 'model_field' 或 'model_field' 的定义中添加或更改相关名称参数。
更改相关不是我能采用的最佳方法,因为更改相关名称涉及更改大量代码。我在这里想念什么?我应该寻找什么?任何帮助将不胜感激。
【问题讨论】:
-
如果相关名称发生冲突,那么除了添加或更改
related_name之外,您实际上无能为力,即使这涉及更改大量代码。目前尚不清楚冲突是什么,因为您的问题是实际模型名称的混合,例如Comment和像MyModel这样的虚构名称。 -
这只是我的一个模型的一个例子,我在大多数模型中都遇到了同样的错误。我尝试更改相关名称,这似乎解决了除了 User.groups(我无法更改)之外的问题。你有什么解决办法吗?
-
正如我之前所说,我认为您的示例代码没有提供足够的信息来了解问题所在。希望你能弄清楚。
标签: python django django-models