Django 1.9.7我正在使用pyenv virtualenv autoenv
我想扩展用户模型,所以我决定使用 AbstractUser
(AbstractUser的class METAabstract = True,所以我无法创建表,但是继承类可以创建表,对吗?)
无论如何
(wef是项目名称)我制作应用 wef/users/models/__init__.py
from .user import User
Run Code Online (Sandbox Code Playgroud)
在 wef/users/models/user.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
phonenumber = models.CharField(
max_length = 11,
blank = True,
null = True
)
Run Code Online (Sandbox Code Playgroud)
然后users在settings.py中添加应用
INSTALLED_APPS = [
[...]
'users',
]
AUTH_USER_MODEL = 'users.User'
Run Code Online (Sandbox Code Playgroud)
所以,我认为当我进行移民时,
django将制作有关用户的模型表...
python wef/manage.py makemigrations users
它显示错误
Traceback (most recent call last):
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/config.py", line 163, in get_model
return self.models[model_name.lower()]
KeyError: 'user'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 398, in execute
self.check()
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 426, in check
include_deployment_checks=include_deployment_checks,
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/checks/registry.py", line 75, in run_checks
new_errors = check(app_configs=app_configs)
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/contrib/auth/checks.py", line 12, in check_user_model
cls = apps.get_model(settings.AUTH_USER_MODEL)
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/registry.py", line 197, in get_model
return self.get_app_config(app_label).get_model(model_name.lower())
File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/config.py", line 166, in get_model
"App '%s' doesn't have a '%s' model." % (self.label, model_name))
LookupError: App 'users' doesn't have a 'user' model.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么django找不到用户。用户模型
当我更改`AUTH_USER_MODEL = UserAAA'
它显示错误(大写字母更改为小写)
LookupError: App 'users' doesn't have a 'useraaa' model.
我找不到我的问题,请有人帮助我。
我认为您已经创建了数据库架构。从Django文档中:
更改AUTH_USER_MODEL对您的数据库结构有很大影响。它更改了可用的表,并且将影响外键和多对多关系的构造。如果打算设置AUTH_USER_MODEL,则应在创建任何迁移或首次运行manage.py migration之前进行设置。
makemigrations不支持在创建表后更改此设置,这将导致您必须手动修复模式,从旧用户表中移植数据,并可能手动重新应用某些迁移。
| 归档时间: |
|
| 查看次数: |
3176 次 |
| 最近记录: |