Ich habe eine Django-App, die ihre Daten komplett aus apis bezieht. also muss ich keine Datenbank verwenden. Sitzungsdaten werden auf signierten Cookies gespeichert. Ich habe versucht, ein benutzerdefiniertes Benutzermodell und ein benutzerdefiniertes Auth-Backend wie in den Dokumenten zu codieren, aber ich erhalte den folgenden Fehler:
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'my_app.MyUser' that has not been installed
Meine settings.py:
%Vor%models.py:
%Vor% Wenn hier versucht wird, den AbstractUser von django anstelle von Object zu verwenden, wurde der folgende Fehler angezeigt: AttributeError: 'NoneType' object has no attribute '_meta'
oder die db-Tabelle wird nicht beendet.
backends.py
%Vor%Es macht mich verrückt. Sieht aus wie Django, das ohne DB nicht einfach zu benutzen ist.
Nach mehreren Versuchen ist es eine einfache Möglichkeit, dies zu beheben, indem Sie 'django.contrib.auth.backends.ModelBackend'
von AUTHENTICATION_BACKENDS
und AUTH_USER_MODEL
aus den Einstellungen entfernen. Das Modell fährt im Prinzip auf die gleiche Weise fort. funktioniert reibungslos
Der Standardsatz der Authentifizierungs-Back-End-Prozessoren wird in der Einstellung AUTHENTICATION_BACKENDS
definiert. Siehe die Django-Dokumentation für die Anpassung der Authentifizierung .
Standardmäßig ist AUTHENTICATION_BACKENDS auf Folgendes eingestellt:
%Vor%Dies ist das Basis-Authentifizierungs-Backend, das die Django-Benutzerdatenbank überprüft und die integrierten Berechtigungen abfragt.
Wenn Sie also die django.contrib.auth.backends.ModelBackend
Authentifizierungsmethode nicht möchten, entfernen Sie diese aus der Liste. Wahrscheinlich möchten Sie einen anderen suchen (oder erstellen) und diesen zur Liste hinzufügen.
Tags und Links python django python-3.x django-authentication