【发布时间】:2013-06-20 15:29:43
【问题描述】:
使用 Django 1.5,尝试自定义用户功能。
我在项目中只有 3 个模型。他们来了,
class CustomUser(AbstractBaseUser, PermissionsMixin):
class CustomUserManager(BaseUserManager):
class testModel (models.Model):
python manage.py validate 时没有错误。当我执行python manage.py sqlall lancer(lancer 是应用程序的名称)时,它会显示以下内容,
BEGIN;
CREATE TABLE "lancer_testmodel" (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
)
;
COMMIT;
其他两个模型的 SQL 代码发生了什么变化?它是否只为显式继承 models.Model 的模型创建表?
附加信息,
- 我在末尾添加了
AUTH_USER_MODEL = 'lancer.CustomUser'根据 Django 文档的 settings.py 文件 - 我在 settings.py 中注释掉了所有其他已安装的应用程序。我知道
contrib.auth使用了很多,但是因为我正在使用 一个新的自定义用户模型,我只是将其他所有内容都注释掉了。
这就是现在的样子,
INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sessions',
#'django.contrib.sites',
#'django.contrib.messages',
#'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'lancer',
)
【问题讨论】:
-
变量
AUTH_USER_MODEL?已添加到您的设置中 -
@VictorCastilloTorres 是的。我在 settings.py 文件的末尾添加了 AUTH_USER_MODEL = 'lancer.CustomUser'。
-
我认为你的
INSTALLED_APPS中有myapp_where_my_model_is之类的东西 -
@VictorCastilloTorres 我最后有它,“lancer”,这是我的应用程序的名称。我还需要包含除此之外的任何内容吗?我的 testModel 似乎工作得很好,只是自定义用户模型没有创建表。
-
我找到了解决方案,看看我的答案