Django CMS 3.1.3、Python 3.4 和 Django 1.8 自定义用户
Django CMS 3.1.3, Python 3.4 and Django 1.8 CustomUser
我找到了类似的 post,但 none 的答案对我有帮助。我在尝试 运行 makemigrations 或 migrate 时收到 "LookupError: Model 'email_user.EmailUser' not registered."。任何帮助或建议将不胜感激。
项目结构
ProjectRoot/
- email_user/
-- __init__.py
-- admin.py
-- models.py
- djangocms/
-- static/
-- templates/
-- __init__.py
-- urls.py
- manage.py
- settings.py
- wsgi.py
settings.py
INSTALLED_APPS = (
'djangocms_admin_style',
'djangocms_text_ckeditor',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'email_user',
'cms',
'menus',
'sekizai',
'treebeard',
'djangocms_style',
'djangocms_column',
'djangocms_file',
'djangocms_flash',
'djangocms_googlemap',
'djangocms_inherit',
'djangocms_link',
'djangocms_picture',
'djangocms_teaser',
'djangocms_video',
'reversion',
'djangocms',
)
AUTH_USER_MODEL = "email_user.EmailUser"
email_user/admin.py
from django.contrib import admin
from email_user.models import EmailUser
admin.site.register(EmailUser)
email_user/models.py
class EmailUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField('email address', max_length=255, unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
def get_short_name(self):
return self.email
def get_full_name(self):
return self.email
呃,
经过数小时的深入挖掘,我找到了问题所在。 Django CMS 安装程序会自动为您和 INSTALLED_APPS 区域设置 settings.py 文件。
因此,由于某些原因,某些依赖项未正确设置,并且遵循文档将导致您在 table.
上花费数小时的时间。
已安装的应用应如下所示:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'djangocms_admin_style', # MOVED THIS HERE
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'email_user',
'djangocms_text_ckeditor', # MOVED THIS HERE
'cms',
'menus',
'sekizai',
'treebeard',
'djangocms_style',
'djangocms_column',
'djangocms_file',
'djangocms_flash',
'djangocms_googlemap',
'djangocms_inherit',
'djangocms_link',
'djangocms_picture',
'djangocms_teaser',
'djangocms_video',
'reversion',
'securepal',
)
希望这可以避免有人不得不追踪它
我找到了类似的 post,但 none 的答案对我有帮助。我在尝试 运行 makemigrations 或 migrate 时收到 "LookupError: Model 'email_user.EmailUser' not registered."。任何帮助或建议将不胜感激。
项目结构
ProjectRoot/
- email_user/
-- __init__.py
-- admin.py
-- models.py
- djangocms/
-- static/
-- templates/
-- __init__.py
-- urls.py
- manage.py
- settings.py
- wsgi.py
settings.py
INSTALLED_APPS = (
'djangocms_admin_style',
'djangocms_text_ckeditor',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'email_user',
'cms',
'menus',
'sekizai',
'treebeard',
'djangocms_style',
'djangocms_column',
'djangocms_file',
'djangocms_flash',
'djangocms_googlemap',
'djangocms_inherit',
'djangocms_link',
'djangocms_picture',
'djangocms_teaser',
'djangocms_video',
'reversion',
'djangocms',
)
AUTH_USER_MODEL = "email_user.EmailUser"
email_user/admin.py
from django.contrib import admin
from email_user.models import EmailUser
admin.site.register(EmailUser)
email_user/models.py
class EmailUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField('email address', max_length=255, unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
def get_short_name(self):
return self.email
def get_full_name(self):
return self.email
呃,
经过数小时的深入挖掘,我找到了问题所在。 Django CMS 安装程序会自动为您和 INSTALLED_APPS 区域设置 settings.py 文件。
因此,由于某些原因,某些依赖项未正确设置,并且遵循文档将导致您在 table.
上花费数小时的时间。已安装的应用应如下所示:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'djangocms_admin_style', # MOVED THIS HERE
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'email_user',
'djangocms_text_ckeditor', # MOVED THIS HERE
'cms',
'menus',
'sekizai',
'treebeard',
'djangocms_style',
'djangocms_column',
'djangocms_file',
'djangocms_flash',
'djangocms_googlemap',
'djangocms_inherit',
'djangocms_link',
'djangocms_picture',
'djangocms_teaser',
'djangocms_video',
'reversion',
'securepal',
)
希望这可以避免有人不得不追踪它