Django- как сделать страницу входа в систему с пользовательским пользователем без UserCreationForm?
models.py
class CustomUser(AbstractUser): is_student = models.BooleanField(default=False) is_teacher = models.BooleanField(default=False) class palabout(models.Model): user = models.ForeignKey(CustomUser, blank=True, null=True, on_delete=models.SET_NULL) profileImage = models.FileField() username = models. CharField(max_length=30) email = models.EmailField(max_length=100) password = models.CharField(max_length=100) fname = models.CharField(max_length=30) lname = models. charField(max_length=30) gender = models.CharField( max_length=1, choices=((('m', ('Male')), ('f', ('Female'))), blank=True, null=True) dob = models.DateField(max_length=8)
forms.py
class pal1Form(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
class Meta():
model=CustomUser
fields=['username','email','password']
def save(self):
user = super().save(commit=False)
user.is_student = True
user.save()
return user
class palForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model=palabout
fields =['username','password','email','fname','lname','dob','gender','profileImage']
views.py
from .forms import palForm,pal1Form
def add_form(request):
form = palForm(request.POST, request.FILES)
form1=pal1Form(request.POST)
if request.method == "POST":
form = palForm(request.POST , request.FILES)
form1=pal1Form(request.POST)
if form.is_valid() and form1.is_valid() :
try:
form.save()
form1.save()
messages.success(request,"Successfully Added")
return render(request,"home.html")
except:
messages.error(request,"Failed to Add")
return render(request,"home/pal-form.html",context={"form":form})
else:
form=palForm()
form=pal1Form()
return render (request,"home/pal-form.html",context={"form":form,"form1":form1})
def login(request):
form=pal1Form(request.POST)
if request.method == 'POST':
form=pal1Form(request.POST)
if form.is_valid():
user = authenticate(
username=form.cleaned_data['username'],
password=form.cleaned_data['password'],
)
if user is not None:
login(request, user)
return redirect("menu")
else:
messages.error(request,"Invalid username or password.")
return redirect(login")
return render(
request, 'login.html', context={'form': form})
Я пробую много страниц входа в систему с несколькими пользователями, но вход не открывается, как я могу войти в систему на пользовательской странице? В чем проблема? Кто-нибудь может мне помочь?