Ich versuche, mit AbstractUser ein Feld zu Djangos Standardbenutzermodell hinzuzufügen. Dies ist mein Code:Datenbankfehler: keine solche Tabelle: auth_user. Erweitern von AbstractUser und Verwenden des Modells zum Registrieren auf admin
class GUser(AbstractUser):
uuid = UUIDField(auto=True)
Diese erfolgreich war, weil aus der Schale kann ich nur sagen,
>>> a = GUser.objects.all()
>>> a
[<GUser: User1>]
>>> a[0].uuid
UUID('7d1f0b7b52144a2ea20db81ce74741e3')
Das Problem Ich bin von der/admin Registrierung eines neuen Benutzers. Wenn ich einen neuen Benutzer erstellen erhalte ich einen Datenbankfehler:
no such table: auth_user
Bevor ich mehr in sie zu erhalten, hier ist mein forms.py:
class GUserChangeForm(UserChangeForm):
class Meta:
model = get_user_model()
class GUserCreationForm(UserCreationForm):
class Meta:
model = get_user_model()
def clean_username(self):
username = self.cleaned_data["username"]
try:
get_user_model().objects.get(username=username)
except get_user_model().DoesNotExist:
return username
raise forms.ValidationError(self.error_messages['duplicate'])
Und mein admin.py:
class GUserAdmin(UserAdmin):
form = GUserChangeForm
add_form = GUserCreationForm
fieldsets = (
(None, {'fields': [('username', 'password')]}),
('Personal info', {'fields': ('is_active','is_staff','is_superuser','groups', 'user_permissions')}),
('Important dates', {'fields': ('last_login', 'date_joined')}),
#('Universal ID', {'fields': ('uuid')})
)
admin.site.register(GUser,GUserAdmin)
ich
lesen, dass, wenn diese zu anderen Menschen passiert ist sie ihre eigene Formen umgesetzt (wie ich) clean_username (Selbst-) 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 aufrufen, sehe ich, dass eine auth_user Tabelle tatsächlich nicht erstellt wird.
Ja, ich habe AUTH_USER_MODEL in settings.py aufgenommen.
Jede Hilfe würde sehr geschätzt werden.
Ich habe gelesen: https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#custom-users-and-the-built-in-auth-forms
Zusammen mit Tonnen SO Beiträge aber keiner von ihnen scheint das Problem zu beheben das ich habe.
Dieser Thread hat Ihre Antwort: https://groups.google.com/forum/#! topic/django-users/kOVEy9zYn5c Anscheinend, Custom Model nicht die 'Meta' für Manager – karthikr
@karthikr Ich hatte diese Seite gesehen, war aber nicht sicher, ob wir das gleiche genaue Problem hatten. Ist die Lösung, den Code in auth.forms.py tatsächlich zu ändern? – FrancescoA
Ich denke, es ist Scott Anderson's Antwort am 20. März – karthikr