Django没有为我的自定义用户模型创建表

时间:2013-06-20 15:29:43

标签: django model syncdb

使用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使用了很多它们,但是因为我正在使用它们 一个新的自定义用户模型,我只是评论了其他所有内容。
  3. 这就是现在的样子,

    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',
    )
    

1 个答案:

答案 0 :(得分:4)

PermissionsMixin取决于

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

如果您只评论django.contrib.auth并取消注释django.contrib.contenttypes, 你会有这个错误

  

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

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

您将收到此错误

  

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

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