使用Django CMS定制用户模型。无法解析cms.PageUser的基础

时间:2016-08-01 14:15:39

标签: django django-cms

我正在尝试使用Django CMS的自定义用户模型。我使用此模型创建了新的用户应用:

users.models:

from django.db import models
from django.contrib.auth.models import AbstractUser


class User(AbstractUser):
    bio = models.TextField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)

此处项目设置:

设置:

INSTALLED_APPS = [
    'djangocms_admin_style',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.admin',
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'django.contrib.staticfiles',
    'django.contrib.messages',
    'users',
    'cms',
    'menus',
    ...
]

AUTH_USER_MODEL = 'users.User'

为什么我有这个错误?

manage.py makemigrations用户

django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'cms.PageUser'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
 in an app with no migrations; see https://docs.djangoproject.com/en/1.8/topics/migrations/#dependencies for more

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并且按照您的指示进行操作,但是在步骤9中,我遇到了此错误: django.db.migrations.exceptions.InconsistentMigrationHistory:迁移admin.0001_initial在其依赖项用户之前应用。0001_initial在数据库“默认”上。

我通过重新排序您的步骤来工作(无需注释掉AUTH_USER_MODEL,也没有注释掉已安装应用程序中的用户)

  1. 从用户应用中删除了迁移文件夹
  2. 以空白数据库开头
  3. Ran manage.py makemigrations用户
  4. Ran manage.py迁移
  5. Ran manage.py makemigrations
  6. Ran manage.py迁移

答案 1 :(得分:0)

我遇到了同样的问题。根据对https://github.com/divio/django-cms/issues/3436的回复,我做了以下哪些对我有用:

  1. 从用户应用
  2. 中删除了迁移文件夹
  3. 从已安装的应用中删除用户
  4. 注释掉AUTH_USER_MODEL
  5. 开始使用空白数据库
  6. manage.py makemigrations
  7. manage.py migrate
  8. 放回去的东西,我先前已经注释掉了。
  9. manage.py makemigrations users
  10. manage.py migrate
  11. 我知道这是一个老帖子,但它可能对其他人有帮助。