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,
- Ich fügte hinzu
AUTH_USER_MODEL = "lancer.CustomUser"
am ende meiner Einstellungen.py-Datei gemäß der Django-Dokumentation - 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 № 1Gut 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