Bei der Online-Suche nach, wie benutzerdefinierte Authentifizierung in Django erreichen, stieß ich auf this und this Artikel. In beiden Artikeln wurden dieselben Anweisungen angegeben. Momentan habe ich so etwas. (Entnommen erster Artikel)benutzerdefinierte Authentifizierung im Backend - Erstellen Benutzer zur Laufzeit ohne zu speichern
class Client(models.Model):
email = models.EmailField(unique=True, max_length=100)
password = models.CharField(max_length=128)
Dann in einer anderen Python-Datei Ich habe diese
from .models import Client
class ClientAuthBackend(object):
def authenticate(self, username=None, password=None):
try:
user = Client.objects.get(email=username)
return user
if password == 'master':
# Authentication success by returning the user
return user
else:
# Authentication fails if None is returned
return None
except Client.DoesNotExist:
return None
def get_user(self, user_id):
try:
return Client.objects.get(pk=user_id)
except Client.DoesNotExist:
return None
Ich habe gerade angefangen Django verwenden und Art übersprungen von dem Modellbereich für db da Interaktion in meinem aktuellen Projekt I verwende aus bestimmten Gründen RAW und Custom SQL. Meine Frage ist, wo hat der
user = Client.objects.get(email=username)
von seinem Benutzer erhalten. Muss ich in eine Datenbank einsteigen? Was ich tun möchte, ist ein Benutzer während der Laufzeit zu erstellen und nicht auf die database.I speichern versucht, diese
#The following creates and saves a user in the db
u =User.objects.create_user('john', '[email protected]', 'johnpassword',cust_address="my_custom_address",cust_msg="Users custom message")
tun Die oben gibt eine Client.DoesNotExist
Ausnahme.