首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django-CMS将Django升级到1.5 -用户型号问题

使用Django-CMS将Django升级到1.5 -用户型号问题
EN

Stack Overflow用户
提问于 2013-05-17 12:28:40
回答 2查看 2.2K关注 0票数 3

我刚刚将一个站点从Django -cms2.3.5迁移到2.4.1 (来自Stackoverflow的help )下的Django 1.4。

我现在正在升级到Django 1.5,这很难,因为我需要将旧的独立用户配置文件更新为新的自定义用户模型。我遵循了here的优秀说明,还用settings.AUTH_USER_MODEL替换了所有对User的引用。

不幸的是,Django-CMS的模型显然仍然引用User:当我输入manage.py runserver时,我得到这个错误:

代码语言:javascript
复制
CommandError: One or more models did not validate:
cms.pagemoderatorstate: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
cms.globalpagepermission: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
cms.pagepermission: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
cms.pageuser: 'user_ptr' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
cms.pageuser: 'created_by' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.
cms.pageusergroup: 'created_by' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.

如何让Django-CMS使用新的用户模型?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-24 06:57:12

对于其他有这个问题的人,这里是我从https://github.com/divio/django-cms/issues/1798学到的总结。

有四种可能的选择:

  1. 如果您需要您的自定义用户模型具有除User之外的名称,则需要等待。
  2. 您可以调用自定义用户模型user -尽管当我尝试这样做时,我收到了有关与相关m2m字段冲突的错误。在上面的链接中有更多的细节可以帮助解决这个问题。
  3. Django1.5仍然允许你使用用户配置文件。因此,如果您可以使用不推荐使用的功能,您仍然可以使用Django-CMS 2.4和Django 1.5的用户配置文件,而不是自定义用户模型。(我误读了这里的Django文档,以为Django 1.5不支持用户配置文件。)
  4. 您通常可以在没有用户配置文件或自定义用户模型的情况下逃脱-它们最好用于添加专门用于用户身份验证的数据。相反,您可以使用与用户具有一对一关系的另一个模型,并使用反向关系访问该模型。

在我的情况下,我会在短期内选择#3,在长期内选择#4。

票数 0
EN

Stack Overflow用户

发布于 2013-07-03 01:31:42

有一个非常简单的解决方案。只需在导入CMSPlugin之前注册您的自定义用户。示例:

从django.db导入模型从django.contrib.auth导入模型从django.contrib.auth.models导入模型作为auth_models从django.contrib.auth.models导入AbstractUser类用户(AbstractUser):电话= models.CharField(max_length=100)电子邮件= models.CharField(max_length=100) auth_models.User =用户从cms.models导入CMSPlugin

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16601412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档