Usando Django 1.5, provando la funzione utente personalizzata.
Ho solo 3 modelli nel progetto. Eccoli,
class CustomUser(AbstractBaseUser, PermissionsMixin):
class CustomUserManager(BaseUserManager):
class testModel (models.Model):
Nessun errore quando lo faccio python manage.py validate
. Quando io faccio python manage.py sqlall lancer
(lancer è il nome dell'app), mostra quanto segue,
BEGIN;
CREATE TABLE "lancer_testmodel" (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
)
;
COMMIT;
Cosa è successo al codice SQL per gli altri due modelli? Crea solo tabelle per modelli che ereditano esplicitamente models.Model
?
Informazioni aggiuntive,
- Ho aggiunto
AUTH_USER_MODEL = "lancer.CustomUser"
alla fine del mio file settings.py per la documentazione di Django - Ho commentato tutte le altre app installate in settings.py. lo so che molti di loro sono stati usati da
contrib.auth
, ma dal momento che sto usando un nuovo modello utente personalizzato, ho appena commentato tutto il resto.
Questo è quello che sembra ora,
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",
)
risposte:
4 per risposta № 1Bene PermissionsMixin
dipende da
"django.contrib.auth",
"django.contrib.contenttypes",
se si commenta solo django.contrib.auth
e il non comune django.contrib.contenttypes
, avrai questo errore
CommandError: uno o più modelli non sono stati convalidati: users.myuser: "groups" ha una relazione m2m con il modello
<class "django.contrib.auth.models.Group">
, che non è stato installato o è astratto. users.myuser: "user_permissions" ha una relazione m2m con il modello<class "django.contrib.auth.models.Permission">
, che non è stato installato o è astratto.
se disapprovi django.contrib.auth
e commentare django.contrib.contenttypes
Avrai questo errore
CommandError: uno o più modelli non sono stati convalidati: auth.permission: "content_type" ha una relazione con il modello <
class "django.contrib.contenttypes.models.ContentType">
, che non è stato installato o è astratto.
e se disattivi i due lo sqlall deve generare la tua tabella: D