Authentifizierung in Django ohne Datenbank

9

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.

BEARBEITEN

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

    
gosling_ 11.04.2016, 18:17
quelle

1 Antwort

1

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.

    
bignose 08.06.2017 06:08
quelle