Ich möchte Authentifizierungen in meinem Django-Projekt mit meiner Mongoengine db handhaben.Django - Auth mit Mongoengine DB
Ich versuchte 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 http://mongoengine-odm.readthedocs.org/en/latest/django.html
und ich erhalte den folgenden Fehler:
Wenn ich laufe:
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', '[email protected]', 'johnpassword')
ich dieses:
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 wirklich don‘ t verstehe 2 Dinge:
-Do muss ich die Datenbank erstellen und definieren, in der die Benutzer gespeichert werden, oder werden sie automatisch erstellt?
-Was ist Manager? Ich habe keine Manager Sachen definiert
Am Anfang dachte ich, dass das Register in einer Datenbank gespeichert wurde. rief 'mongo_auth.MongoUser', aber es rettete es nicht im Nirgendwo. Hier
ist 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)
Die settings.py richtig wie das Handbuch so konfiguriert ist, sagt.
EDIT @cestDiego:
Meine Einstellungen sind genau die gleichen, ich habe über die Db Backend bemerkt, weil es mir eine Datenbank erstellt, die nicht daran interessiert bin, weil ich Mongo ... Auf jeden Fall bin ich Ussing aus mongoengine.django.auth Import Benutzer jetzt aber wenn ich versuche, einen Spieler zu schaffen es gibt mir:
>>> 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 die auth Customizing und deshalb nicht arbeiten, keine Ahnung. Hast du dieses Problem auch?
ZWEITE EDIT:
ich las, und wir haben Djangos Auth zu verwenden, nachdem die richtigen Einstellungen konfigurieren, wie wir beide getan haben.
Dann importieren Sie die von django.contrib.auth Import authentifizieren und verwenden Sie authentifizieren, wie es in Django docs zur Verfügung gestellt wird, hoffe, zu helfen; 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.")
Ich bekomme einen Fehler in dieser Zeile user.backend = 'mongoengine.django.auth.MongoEngineBackend' Fehler ist 'MetaDict' Objekt hat kein Attribut 'pk' –