Usando o Django 1.5, testando o recurso de usuário personalizado.
Eu só tenho 3 modelos no projeto. Aqui estão eles,
class CustomUser(AbstractBaseUser, PermissionsMixin):
class CustomUserManager(BaseUserManager):
class testModel (models.Model):
Sem erros quando eu fizer python manage.py validate
. Quando eu faço python manage.py sqlall lancer
(lancer é o nome do aplicativo), mostra o seguinte,
BEGIN;
CREATE TABLE "lancer_testmodel" (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
)
;
COMMIT;
O que aconteceu com o código SQL para os outros dois modelos? Ele apenas cria tabelas para modelos que herdam explicitamente models.Model
?
Informação adicional,
- Eu adicionei
AUTH_USER_MODEL = "lancer.CustomUser"
no final do meu arquivo settings.py pela documentação do Django - Comentei todos os outros aplicativos instalados em settings.py. eu sei que muitos deles foram usados por
contrib.auth
, mas desde que eu estou usando um novo modelo de usuário personalizado, acabei de comentar tudo o resto.
É assim que parece agora,
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",
)
Respostas:
4 para resposta № 1Bem PermissionsMixin
depende de
"django.contrib.auth",
"django.contrib.contenttypes",
se você comentar apenas django.contrib.auth
e descomentar django.contrib.contenttypes
, você terá esse erro
CommandError: Um ou mais modelos não validaram: users.myuser: "groups" possui uma relação m2m com o modelo
<class "django.contrib.auth.models.Group">
, que não foi instalado ou é abstrato. users.myuser: "user_permissions" possui uma relação m2m com o modelo<class "django.contrib.auth.models.Permission">
, que não foi instalado ou é abstrato.
se você descomentar django.contrib.auth
e comente django.contrib.contenttypes
Você terá este erro
CommandError: Um ou mais modelos não validaram: auth.permission: "content_type" tem uma relação com o modelo <
class "django.contrib.contenttypes.models.ContentType">
, que não foi instalado ou é abstrato.
e se você descomentar os dois, o sqlall precisa gerar sua tabela: D