【问题标题】:Django CMS FieldError: Local field 'created_by' in class 'PageUser' clashes with field of similar name from base class 'User'Django CMS FieldError:类“PageUser”中的本地字段“created_by”与基类“User”中类似名称的字段冲突
【发布时间】:2018-08-20 15:40:30
【问题描述】:

我在 python 3.5 上有一个现有的 django 1.9 应用程序,我正在尝试将 django cms 引入其中。现在,我正在按照此处的手动安装说明进行操作:http://docs.django-cms.org/en/release-3.3.x/how_to/install.html

我想使用现有的 postgres db 来存储 cms 数据。现在,我所做的只是将 cms 应用程序添加到 INSTALLED_APPS 以及中间件和模板,所有这些都在设置文件中。当我启动我的应用程序时,我得到了 FieldError:

django.core.exceptions.FieldError: Local field 'created_by' in class 'PageUser' clashes with field of similar name from base class 'User'

我浏览了这个http://docs.django-cms.org/en/develop/reference/configuration.html#custom-user-requirements 并确保我们的自定义用户正确继承并具有正确的字段和方法。

我们的自定义 User 模型确实继承自自定义 mixin,该 mixin 将 created_by 添加到 user 模型。

我找不到解决此问题的解决方法。任何建议将不胜感激。

【问题讨论】:

  • 您遇到的错误是什么?
  • 我在上面的正文中添加了错误。
  • 检查我发布的答案。我希望它可以帮助你解决你的问题。 :)

标签: python django django-cms


【解决方案1】:

您应该重命名该字段。像这样的

class PageUser(User):
    page_user_created_by = models.ForeignKey(settings.AUTH_USER_MODEL, 
                                             related_name="created_users", db_column='created_by')

您可以阅读更多关于它的信息here

【讨论】:

  • 也许我错过了什么。该解决方案看起来像是对他们更改实施的建议。 cms 必须在我们的应用程序加载我们的自定义用户模型后加载。我已经尝试创建一个自定义 PageUser 类,但它不会以正确的顺序加载来解决这个问题。现在我们倾向于重命名 created_by,但这对我们的应用来说是一个很大的问题。
猜你喜欢
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2022-01-10
  • 2014-06-13
  • 2020-11-26
  • 1970-01-01
  • 2011-07-30
相关资源
最近更新 更多