首页 > 解决方案 > 我想用 Django 登录和注册我的网站,但它不起作用

问题描述

表格.py

class SignUpForm(forms.Form):                               
   name = forms.CharField(max_length=50, required=True)
   email = forms.EmailField(max_length=100, required=True) 
   password = forms.CharField(max_length=20, required=True)


class SignInForm(forms.Form):                                                             
   email = forms.EmailField()                              
   password = forms.CharField(max_length=20, min_length=8)

视图.py

def Sign_Up(request.POST):
if request.method == 'POST':
    form = SignUpForm(request)
    if form.is_valid():
        cd = form.cleaned_data
        name = cd['name']
        email = cd['email']
        password = cd['password']
        us = User..objects.get(email__exact=email, password__exact=password)
    return HttpResponseRedirect('/')
else:
    form = SignUpForm()
    return render(request,'User Login Page.html', {'form':form})


def Sign_In(request.POST):
if request.method =='POST' :
    form = SignInForm(request)
    if form.is_valid():
        F = form.cleaned_data
        Eemail = F['email']
        Epassword = F['password']
        try:
            user = User.objects.filter(email=Eemail)
        except User.DoesNotExist:
            form = SignInForm()
            return render(request, "Admin Login Page.html", {'form': form})
        if User.password == Epassword:
            return HttpResponseRedirect("/")
form = SignInForm()
return render(request,"Admin Login Page.html",{'form':form})

我想使用Django为我的网站进行登录和注册,但它不起作用!
当我点击提交按钮HttpRsponseDirect时,即使参数为空,我的注册也会直接转到地址

标签: pythonhtmldjangoweb

解决方案


def Sign_Up(request):

    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            name = cd['name']
            email = cd['email']
            password = cd['password']
            user = form.save()
            user.refresh_from_db() 
            user.save()
            user = authenticate(username=email, password=password)
        return HttpResponseRedirect('/')
    else:
        form = SignUpForm()
        return render(request,'signup.html', {'form':form})

def Sign_In(request):
    if request.method =='POST' :
        form = SignInForm(request)
        if form.is_valid():
            F = form.cleaned_data
            Eemail = F['email']
            Epassword = F['password']
            user=authenticate(username=F,password=Epassword)
            if  user is not None:
                 return HttpResponseRedirect("/")
            else:
                form=SignInForm()
                message='login failed'
            retuen render(request,'login.html',{'form':form,'message':message})

查看上行代码


推荐阅读