我正在 Django 中创建一个项目,并且我有一个HelpDesk我想在项目中使用的数据库。在数据库中,我有log_user存储登录信息的表,但除了 Django 默认表之外,我找不到其他方法来进行身份验证。
视图.py
from django.shortcuts import render
from django.http import HttpResponse
from .forms import Person
from django.contrib.auth import authenticate, login
def user_login(request):
if request.method == 'POST':
form = Person(request.POST)
if form.is_valid():
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponse('Authenticated sucessfully')
else:
return HttpResponse('Disable account')
else:
return HttpResponse('Invalid Login')
else:
form = Person()
return render(request, 'login2.html', {'form': form})
表格.py
from django import forms
from .models import Loginteste
class Person(forms.ModelForm):
class Meta:
model = Loginteste
fields = ['username', 'password']
模型.py
from django.db import models
class Loginteste(models.Model):
username = models.CharField(max_length=50, blank=True, null=True)
password = models.CharField(max_length=50, blank=True, null=True)
class Meta:
managed = True
db_table = 'loginteste'
auth_backend.py
from .models import Loginteste
class MyBackend:
def authenticate(self, request, username=None, password=None):
user = Loginteste.object.get(username=username)
if user.check_password(password):
return (request, user)
我尝试使用默认表“用户”并且登录功能有效,但我无法使用已经存在的表(log_user在数据库中HelpDesk)。