/ / Django erstellt keine Tabellen für meine benutzerdefinierten Benutzermodelle - Django, Model, Syncdb

Django erstellt keine Tabellen für meine benutzerdefinierten Benutzermodelle - django, model, syncdb

Testen Sie die benutzerdefinierte Benutzerfunktion mit Django 1.5.

Ich habe nur 3 Modelle im Projekt. Hier sind sie,

class CustomUser(AbstractBaseUser, PermissionsMixin):
class CustomUserManager(BaseUserManager):
class testModel (models.Model):

Keine Fehler, wenn ich das tue python manage.py validate. Wenn ich tue python manage.py sqlall lancer (Lancer ist der Name der App), es zeigt Folgendes:

BEGIN;
CREATE TABLE "lancer_testmodel" (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
)
;

COMMIT;

Was ist mit dem SQL-Code für die anderen beiden Modelle passiert? Erzeugt es nur Tabellen für Modelle, die explizit erben models.Model?

Zusätzliche Information,

  1. Ich fügte hinzu AUTH_USER_MODEL = "lancer.CustomUser" am ende meiner Einstellungen.py-Datei gemäß der Django-Dokumentation
  2. Ich habe alle anderen installierten Apps in settings.py auskommentiert. Ich kenne dass viele von ihnen benutzt wurden contrib.auth, aber da benutze ich ein neues benutzerdefiniertes Benutzermodell, ich habe alles andere kommentiert.

So sieht es jetzt aus,

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

Antworten:

4 für die Antwort № 1

Gut PermissionsMixin hängt ab von

"django.contrib.auth",
"django.contrib.contenttypes",

wenn du nur kommentierst django.contrib.auth und auskommentieren django.contrib.contenttypes. Sie werden diesen Fehler haben

CommandError: Ein oder mehrere Modelle wurden nicht geprüft: users.myuser: "groups" hat eine m2m-Beziehung zum Modell <class "django.contrib.auth.models.Group">, das entweder nicht installiert wurde oder abstrakt ist. users.myuser: "user_permissions" hat eine m2m-Beziehung zum Modell <class "django.contrib.auth.models.Permission">, das entweder nicht installiert wurde oder abstrakt ist.

wenn Sie unkommentiert sind django.contrib.auth und kommentieren django.contrib.contenttypes

Sie werden diesen Fehler haben

CommandError: Ein oder mehrere Modelle wurden nicht geprüft: auth.permission: "content_type" hat eine Beziehung zum Modell <class "django.contrib.contenttypes.models.ContentType">, das entweder nicht installiert wurde oder abstrakt ist.

und wenn Sie die beiden Kommentare auskommentieren, muss der sqlall Ihre Tabelle generieren: D