Django - Auth mit Mongoengine DB

8

Ich möchte mit meinem mongoengine db Authentifizierungen in meinem Django-Projekt behandeln.

Ich habe ein paar Beispiele über dieses Zeug in alten Fragen beantwortet, aber es lief nicht. Ich benutze Django 1.6 und Mongoengine. Alles ist installiert, läuft und ich kann Dokumente in meiner Mongoengine DB erstellen und speichern.

Ich folge Ссылка

Und ich bekomme den folgenden Fehler:

Wenn ich renne:

%Vor%

Ich verstehe das:

%Vor%

Ich verstehe zwei Dinge wirklich nicht:

- Muss ich die Datenbank erstellen und definieren, in der die Benutzer gespeichert werden, oder werden sie automatisch erstellt?

-Was ist Manager? Ich habe kein Manager-Zeug definiert.

Am Anfang dachte ich, dass das Register in einer db gespeichert wurde. called 'mongo_auth.MongoUser', aber es rettete es nicht im Nirgendwo.

Hier sind die Modelle:

%Vor%

Die Datei settings.py ist richtig konfiguriert, wie im Handbuch angegeben.

BEARBEITEN @cestDiego:

Meine Einstellungen sind genau gleich, ich habe über das Db-Backend gemerkt, da es mir eine Datenbank schafft, die mich nicht interessiert, weil ich Mongo benutze ... Jedenfalls bin ich von mongoengine.django.auth import User nun aber Wenn ich versuche, einen Benutzer zu erstellen, gibt er mich zurück:

%Vor%

Vielleicht passen wir die Authentizität an und deshalb arbeiten wir nicht, keine Ahnung. Hast du dieses Problem auch?

ZWEITE BEARBEITUNG:

Ich habe gelesen und wir müssen Djangos auth verwenden, nachdem wir die richtigen Einstellungen vorgenommen haben, wie wir beide getan haben.

Dann muss das Import-Authentifizierungsdokument von django.contrib.auth importiert werden und authenticate verwendet werden, wie es in Django-Dokumenten zur Verfügung gestellt wird, hoffentlich helfen, D.

%Vor%     
BugFixer 04.04.2014, 11:05
quelle

3 Antworten

6

Ich löse das Problem

In Django 1.6 ...

Meine settings.py sieht so aus:

%Vor%

und meine views.py sieht folgendermaßen aus:

%Vor%

Jetzt wird das Benutzerobjekt in DB gespeichert wie:

%Vor%     
BugFixer 10.04.2014, 09:50
quelle
6

Hey, ich bin in der gleichen Situation wie du bist. Wie ich herausfinden kann, hast du diese in der settings.py

%Vor%

Und das in den installierten Apps

%Vor%

Das bedeutet, dass Sie jetzt die Mongoengine-Authentifizierungsmethode verwenden. Die erste Zeile, die Sie verwenden, importiert die DJANGO-Authentifizierungsmethode, daher gibt es das Problem. Sie erstellen keine Datenbanken in mongodb, sondern in dem Dummy, den Sie mit dem backend.dummy im ORM von Django eingerichtet haben.

Ich weiß nicht, wie man mongoengines Auth-Methode benutzt, wenn Sie es herausfinden, bitte erklären Sie es mir auch;) Ich hoffe, ich habe Ihnen ein wenig über das Problem geklärt, mit dem wir beide hier konfrontiert sind. Es geht nur darum, die Dokumente tiefer zu lesen.

BEARBEITEN: (1 Minute nach der Antwort) Ich habe das in der Dokumentation gefunden, mit der Sie verlinkt sind:

  

MongoEngine enthält ein Django-Authentifizierungs-Backend, das MongoDB verwendet. & gt; Das Benutzermodell ist ein MongoEngine-Dokument, implementiert jedoch die meisten & gt; -Methoden und -Attribute, die das Standard-Django-Benutzermodell ausführt - so sind die & gt; zwei mäßig kompatibel.

Das heißt also, dass du in deinem Fall das

vertauschst %Vor%

bis

%Vor%     
CestDiego 07.04.2014 04:14
quelle
1

Ich konnte die Fehlermeldung @Bugfixer nicht reproduzieren. Ich nehme an, dass es passiert, weil Sie AUTH_USER_MODEL in Ihren Einstellungen festgelegt haben, dieser Eintrag sollte nur dann in Ihren Einstellungen sein, wenn Sie ein benutzerdefiniertes Benutzermodell haben.

Ich werde versuchen, diese Antwort genau so einzugeben, wie ich es gemacht habe, um es mit einem benutzerdefinierten Benutzermodell laufen zu lassen, dem ich ein Favoriten-Array hinzufüge:

settings.py

%Vor%

models.py

%Vor%

ansichten.py

%Vor%

Lass es mich wissen, wenn du Schwierigkeiten hast.

Grüße

    
André Teixeira 08.04.2014 14:35
quelle