0

使用 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

附加信息,

  1. AUTH_USER_MODEL = 'lancer.CustomUser'根据 Django 文档,我在 settings.py 文件的末尾添加了
  2. 我在 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',
)
4

1 回答 1

4

那么PermissionsMixin取决于

'django.contrib.auth',
'django.contrib.contenttypes',

如果您只评论django.contrib.auth 并取消评论django.contrib.contenttypes,您将收到此错误

CommandError: 一个或多个模型未验证:users.myuser: 'groups' 与模型有 m2m 关系<class 'django.contrib.auth.models.Group'>,该模型尚未安装或抽象。users.myuser: 'user_permissions' 与 model 有 m2m 关系<class 'django.contrib.auth.models.Permission'>,它要么尚未安装,要么是抽象的。

如果您取消 django.contrib.auth评论并发表评论django.contrib.contenttypes

你会遇到这个错误

CommandError: 一个或多个模型未验证:auth.permission: 'content_type' 与class 'django.contrib.contenttypes.models.ContentType'>未安装或抽象的模型 < 有关系。

如果你取消注释这两个 sqlall 必须生成你的表:D

于 2013-06-21T01:18:23.990 回答