Datenbankfehler: keine solche Tabelle: auth_user. Erweitern von AbstractUser und Verwenden des Modells zum Registrieren bei admin

8

Ich versuche, mit AbstractUser ein Feld zu Djangos Standard-Benutzermodell hinzuzufügen. Das ist mein Code:

%Vor%

Das war erfolgreich, weil ich von der Shell sagen kann,

%Vor%

Das Problem, das ich habe, ist die Registrierung eines neuen Benutzers von / admin. Wenn ich einen neuen Benutzer erstelle, erhalte ich einen Datenbankfehler:

%Vor%

Bevor ich näher darauf eingehe, hier ist meine forms.py:

%Vor%

Und mein admin.py:

%Vor%

Ich habe gelesen, dass, wenn das mit anderen Leuten passiert ist, sie ihre eigenen Formulare (wie ich) implementiert haben, um clean_username (self) zu überschreiben:

Ich glaube jedoch nicht, dass dies aufgerufen wird, wenn ich versuche, einen Benutzer aus dem Admin hinzuzufügen. Die Datei auth.forms.py wird aufgerufen, obwohl ich mein GUserAdmin registriere.

Auch wenn ich meine Datenbank (sqlite3) lösche und dann python manage.py syncdb aufruft, sehe ich, dass eine auth_user-Tabelle tatsächlich nicht erstellt wird.

Ja, ich habe AUTH_USER_MODEL in settings.py aufgenommen.

Jede Hilfe wird sehr geschätzt.

Ich habe gelesen: Ссылка

Zusammen mit Tonnen von SO-Posts, aber keiner von ihnen scheint das Problem zu lösen, das ich habe.

    
FrancescoA 25.06.2013, 19:33
quelle

1 Antwort

0

Also löschte ich die ganze Arbeit, die ich damit gemacht hatte und ging mit dem Standardbenutzer weiter, damit ich Fortschritte machen konnte. Dann ging ich eines Tages zurück und schaffte es in einer Stunde zu arbeiten. Ich poste den Code als Referenz, aber ich kann nicht genau sagen, was den Unterschied ausgemacht hat. Ich weiß, dass die Erstellungsformen und Zeug nicht notwendig waren.

models.py

%Vor%

admin.py

%Vor%

settings.py

%Vor%

andere models.py

%Vor%

Das funktioniert. Ich weiß nicht, was all die Probleme verursacht hat, weil ich glaube, dass ich diese Methode ausprobiert habe, bevor ich diese Frage gestellt habe. Das ist vielleicht keine befriedigende Antwort, aber das funktioniert. Früher war ich auch verwirrt darüber, was es braucht, um dem bestehenden Benutzer ein Feld hinzuzufügen. Das ist es.

    
FrancescoA 28.07.2013, 22:28
quelle