使用Django CMS将Django升级到1.5-用户模型问题
我刚刚将一个站点从Django CMS 2.3.5迁移到Django 1.4下的2.4.1(使用Stackoverflow) 我现在正在升级到Django 1.5,这很难,因为我需要将旧的单独用户配置文件更新为新的自定义用户模型。我遵循了很好的说明,还将所有对使用Django CMS将Django升级到1.5-用户模型问题,django,upgrade,django-cms,user-profile,Django,Upgrade,Django Cms,User Profile,我刚刚将一个站点从Django CMS 2.3.5迁移到Django 1.4下的2.4.1(使用Stackoverflow) 我现在正在升级到Django 1.5,这很难,因为我需要将旧的单独用户配置文件更新为新的自定义用户模型。我遵循了很好的说明,还将所有对User的引用替换为settings.AUTH\u User\u MODEL 不幸的是,Django CMS的模型显然仍然引用用户,但是:当我键入manage.py runserver时,我得到以下错误: CommandError: One
User
的引用替换为settings.AUTH\u User\u MODEL
不幸的是,Django CMS的模型显然仍然引用用户
,但是:当我键入manage.py runserver
时,我得到以下错误:
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使用新的用户模型
谢谢 对于其他有这个问题的人,这里是我从中学到的总结 有四种可能的选择:
就我而言,短期内我会选择#3,长期内选择#4。有一个非常简单的解决方案。只需在导入CMSPlugin之前注册自定义用户。例如:
我没见过这个问题。我创建了一个类似的模型:来自django的CMS目前不支持AUTH_USER_模型。因此,我们能做什么呢?我不需要对用户配置文件设置进行任何更改就可以从Django 1.4升级到1.5。事实上,我对settings.py文件所做的唯一更改是添加了ALLOWED_HOSTS设置。(将Django CMS从2.3升级到2.4需要进行更多的更改,但同样,与用户配置文件无关。)谢谢!我现在走的是另一条路,但很高兴知道事情这么简单。
from django.db import models
from django.contrib.auth import models as auth_models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
telephone = models.CharField(max_length=100)
email = models.CharField(max_length=100)
auth_models.User = User
from cms.models import CMSPlugin