python - django form.is_valid 返回 false

标签 python html django view orm

每当我提交表单并检查表单是否未提交并被重定向时。验证总是错误的。我输入了所有的字段,它仍然显示相同的内容。为什么一直这样显示?有什么不对?下面是我使用的 View 、模板和表单的文件。

views.py

def signincheck(request):

    if request.method == "POST":
        formsignin = FormSignup(request.POST,request.FILES)
        if formsignin.is_valid():
            return HttpResponse("Password not match 3")
            TbluserVar=Tbluser()
            TbluserVar.firstname=formsignin.cleaned_data['firstname']
            TbluserVar.lastname=formsignin.cleaned_data['lastname']
            TbluserVar.username=formsignin.cleaned_data['username']
            Password=formsignin.cleaned_data['password']
            ConfirmPassword=formsignin.cleaned_data['confirm_password']
            TbluserVar.mobilenumber=formsignin.cleaned_data['mobilenumber']
            Tbluser.dateofbirth=formsignin.cleaned_data['dob']
            Tbluser.dateofjoining=datetime.datetime.today()
            Tbluser.userlevel=0
            if Password != ConfirmPassword:
                messages.error(request,'Password and Confirm Password does not match')
                return redirect('/')

            else:
                try:
                    user = Tbluser.objects.get(username=formsignin.cleaned_data['username'])
                    messages.error(request,'Username not available. Try another one.')
                    return redirect('/')

                except:
                    PasswordEnc=hashlib.md5(Password.encode())
                    RealPassword=PasswordEnc.hexdigest()
                    TbluserVar.passwordenc=RealPassword
                    TbluserVar.save()
                    request.session['username']=TbluserVar.username
                    request.session['getFirstandLastName']=TbluserVar.firstname + " " + TbluserVar.lastname
                    FullName=request.session['getFirstandLastName']
                    return redirect('/index')

        else:
            return redirect('/')
    else:
        return HttpResponse("NOT CORRECT")

forms.py

class FormSignup(forms.Form):
    firstname=forms.CharField(
        max_length=30,
        widget=forms.TextInput(attrs={'placeholder': 'First Name...','class':'loginform'}))

    lastname=forms.CharField(
        max_length=30,
        widget=forms.TextInput(attrs={'placeholder': 'Last Name...','class':'loginform'}))

    username=forms.CharField(max_length=30,widget=forms.TextInput(attrs={'placeholder': 'User Name...','class':'loginform'}))
    password=forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder': 'Password...','class':'loginform'}))
    confirm_password=forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password...','class':'loginform'}))
    mobilenumber=forms.CharField(max_length=30,widget=forms.TextInput(attrs={'placeholder': 'Mobile Number...','class':'loginform'}))
    dob=date = forms.DateTimeField(
        input_formats=['%d/%m/%Y'],
        widget=forms.TextInput(attrs=
        {
            'class':'datepicker',
            'placeholder': 'Date of Birth...'

        }))

template.html

<div class="modal fade" id="modalSignUpForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header text-center">
                <h4 class="modal-title w-100 font-weight-bold">Sign in</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">&times;</span>
                </button>
              </div>
              <form id="idlognform" method="POST" action="{% url 'signupcheck' %}" enctype="multipart/form-data">
                {% csrf_token %}
                <div class="modal-body mx-3">
                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.firstname}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.lastname}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.username}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.password}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.confirm_password}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.mobilenumber}}
                  </div>

                  <div class="md-form mb-4">
                    <i class="fas fa-lock prefix grey-text"></i>
                    {{FormSignup1.dob}}
                  </div>
                  <div class="modal-footer d-flex justify-content-center">
                      <input class="btn btn-default" type="submit" id="signinbutton" value="Login">
                    </div>
                </div>
                {{form.errors}}
              </form>


            </div>
          </div>
        </div>

最佳答案

这是因为在 forms.py 中您使用的是 dob=date=。它看起来不像一个有效的 django 表单。希望这有帮助。

关于python - django form.is_valid 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308521/

相关文章:

json - django rest框架-请求上下文 key 错误

mysql - Yosemite 上的 MySQL 问题

python - 更清晰的正则表达式,用于删除点或斜线之前的字符

Javascript 函数在 Firefox 中不起作用,但在 chrome、safari、IE 和 Edge 中起作用

html - RTF中的文本背景颜色

javascript - 将文本从 <span> 复制到剪贴板

python - 如何从元组python列表中删除所有字符串

python - 如何 1. 将 4,550 个 dbf 文件转换为 csv 文件 2. 根据名称连接文件 3. 将所有 csv 连接成一个大数据 csv 进行分析?

python - 高斯算法显示意外行为

python - 如何锁定 Django 中的关键部分?