/ / Django non crea tabelle per i miei modelli utente personalizzati: django, model, syncdb

Django non crea tabelle per i miei modelli utente personalizzati: django, model, syncdb

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,

  1. Ho aggiunto AUTH_USER_MODEL = "lancer.CustomUser" alla fine del mio file settings.py per la documentazione di Django
  2. 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 № 1

Bene 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