我正在嘗試在不使用 Django user.authenticate 系統的情況下創建一個身份驗證系統,因為我想創建 2 個單獨的登錄系統。1 個供 IT 和 Web 開發部門使用,另外 1 個供一般用戶使用。因此,我為 IT 部門使用相同的 MySql 數據庫和 Auth_user。我創建了一個帳戶應用程序,我想使用accounts_benutzer(德語用戶)表。我可以通過管理面板向應用程序系統用戶等添加感謝,但我希望由 IT 部門用戶注冊的用戶使用給定的用戶名和密碼登錄主頁我的視圖/模型/模板如下:帳戶/模型.py:class Benutzer(models.Model): regex = RegexValidator(regex=r'^\+?1?\d{7,15}$') name = models.CharField(max_length=100) passwort = models.CharField(max_length=32) email = models.EmailField(max_length=254)....賬戶/views.py:from django.shortcuts import redirect, renderfrom django.contrib import messagesfrom django.contrib.auth.models import User, authfrom .models import Benutzerdef login(request): if request.method == 'POST': username = request.POST['name'] passwort = request.POST['passwort'] if (username == Benutzer.name) and (passwort == Benutzer.passwort): return redirect('/') else: messages.info(request,'Falsche Zugangs Daten!') return redirect('/accounts/login') else: return render(request, 'login.html')登錄.html:{% load static %}<form action="login" method="post"> {% csrf_token %} <p>Benutzername: <input type="text" name="name" placeholder="Benutzer Name"></p> <p>Passwort: <input type="password" name="passwort" placeholder="Passwort"></p> <input type="submit" value="Bestaetigen">-<input type="reset" value="L?schen"> </form> <div> {% for message in messages %} <h3>{{message}}</h3> {% endfor %}我知道使用 Benutzer.user 或 Benutzer.passwort 沒有意義,但這就是我要問的重點。如何能夠將從網站獲取的數據與 MySQL 表 account_benutzer 上的數據進行比較,以授予用戶訪問權限?
1 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
我認為還有其他方法,但這應該有效。
def login(request):
if request.method == 'POST':
username = request.POST['name']
passwort = request.POST['passwort']
B_user = Benutzer.objects.filter(name=username).first()
if B_user and B_user.passwort == passwort:
return redirect('/')
else:
messages.info(request,'Falsche Zugangs Daten!')
return redirect('/accounts/login')
else:
return render(request, 'login.html')
添加回答
舉報
0/150
提交
取消