Django - Auth mit mongoengine DB
Ich damit umgehen will Beglaubigungen in meinem Django-Projekt mit meinem mongoengine db.
Habe ich versucht, ein paar Beispiele über diese Sachen beantwortet alte Fragen, aber es nicht ausführen. Ich bin mit Django 1.6 und mongoengine. Alles installiert ist, läuft und ich kann erstellen und speichern Sie Dokumente in meine Mongoengine DB.
Bin ich nach http://mongoengine-odm.readthedocs.org/en/latest/django.html
Und ich bekomme die folgende Fehlermeldung:
Wenn ich laufen:
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', '[email protected]', 'johnpassword')
Bekomme ich diese:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/REBORN/reb_env/local/lib/python2.7/site-packages/django/db/models/manager.py", line 273, in __get__
self.model._meta.object_name, self.model._meta.swapped
AttributeError: Manager isn't available; User has been swapped for 'mongo_auth.MongoUser'
>>>
Ich verstehe wirklich nicht, 2 Dinge:
-Kann ich erstellen muss, und definieren Sie die Datenbank, wo die Benutzer gespeichert werden, oder Sie werden automatisch erstellt?
-Was ist ein Manager? Ich habe nicht definiert, jeder manager Zeug
Am Anfang dachte ich, dass das register gespeichert wurde, in eine db. callled 'mongo_auth.MongoUser', aber es hat nicht speichern Sie es im nirgendwo.
Ist hier die Modelle:
# Create your models here.
from mongoengine import *
class Profile(Document):
email = StringField(required=True)
first_name = StringField(max_length=50)
last_name = StringField(max_length=50)
class auth_user(Document):
username = StringField(max_length=50)
email = StringField(max_length=50)
password = StringField(max_length=50)
Den settings.py richtig konfiguriert, wie das Handbuch sagt.
EDIT @cestDiego:
Meine Einstellungen sind genau die gleichen, ich habe bemerkt, über das Db-backend, denn es schafft mir eine Datenbank geschrieben, die mich nicht interessiert, weil ich mongo...ich bin ja Sowieso ussing aus mongoengine.django.auth import User jetzt aber wenn ich versuche, erstellen Sie eine Benutzer-es gibt mich :
>>> user = User.objects.create_user('john', '[email protected]', 'johnpassword')
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'create_user'
Vielleicht sind wir das customizing der auth und das ist, warum Sie nicht arbeiten, keine Ahnung. Hast du dieses problem auch ?
ZWEITER EDIT:
War ich zu Lesen, und wir verwenden Djangos auth, nach dem konfigurieren, die richtigen Einstellungen, wie wir das getan haben.
Dann importieren muss, die von django.contrib.auth-import-Authentifizierung, und verwenden Sie authentifizieren sich als Sie es in Django-docs, hoffe auf Hilfe ;D.
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from game.models import *
from mongoengine import *
from models import User
from django.contrib.auth import authenticate
def login(request):
user = authenticate(username='john', password='secret')
if user is not None:
# the password verified for the user
if user.is_active:
print("User is valid, active and authenticated")
else:
print("The password is valid, but the account has been disabled!")
else:
# the authentication system was unable to verify the username and password
print("The username and password were incorrect.")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hey ich bin in der gleichen situation wie Sie sind. Wie kann ich herausfinden, Sie haben diese in der settings.py
Und diese in der installierten apps
Dies bedeutet, dass nun Sie die Mongoengine Authentifizierungsmethode, Die erste Zeile, die Sie verwenden, sind Importe die DJANGO-Authentifizierungs-Methode, so gibt es das problem. Sie sind nicht zum erstellen von Datenbanken in mongodb, aber in den dummy ein, die Sie eingerichtet haben mit dem backend.dummy in der ORM von Django.
Ich weiß nicht, wie zu verwenden mongoengine die auth-Methode, wenn Sie es herausfinden, bitte erklär es mir auch 😉 ich hoffe, ich habe klargestellt du ein wenig über das problem, das wir beide Gesicht hier. Es ist nur eine Frage der Lektüre tiefer in die docs.
EDIT: (nach 1 minute die Antwort)
Ich fand diese in der Dokumentation, die Sie im Zusammenhang mit:
so, dass bedeutet, dass in Ihrem Fall, tauschen Sie die
zu
Ich das problem lösen
In Django 1.6...
Meine settings.py sieht wie folgt aus:
und meine views.py sieht aus wie:
nun das user-Objekt ist gespeichert in der DB wie:
Konnte ich nicht reproduzieren des Fehlermeldung, die Sie erhalten, @Bugfixer. Ich nehme an, es ist passiert, weil Sie haben AUTH_USER_MODEL setzen auf Ihre Einstellungen, dieser Eintrag sollte in deinen Einstellungen nur, wenn Sie einen benutzerdefinierten Benutzer-Modell.
Wird versuchen, in dieser Antwort genau das, was ich Tat, um es mit einem benutzerdefinierten Modell, nach dem ich einen Favoriten-array:
settings.py
models.py
views.py
Lassen Sie mich wissen, wenn Sie irgendwelche Schwierigkeiten haben.
Hinsichtlich