Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单为空时不显示错误_Python_Django_Forms_Input_Show - Fatal编程技术网

Python Django表单为空时不显示错误

Python Django表单为空时不显示错误,python,django,forms,input,show,Python,Django,Forms,Input,Show,我有Django表单,但当它们为空时,它们不会变成红色或显示错误(它们是必需的)。我有点确定该怎么办 views.py def lOut(request): if request.user.is_authenticated(): context = { "extendVar":"baseLoggedIn.html", } if request.user.is_authenticated()==False: f

我有Django表单,但当它们为空时,它们不会变成红色或显示错误(它们是必需的)。我有点确定该怎么办

views.py

def lOut(request):
    if request.user.is_authenticated():
        context = {
            "extendVar":"baseLoggedIn.html",
        }
    if request.user.is_authenticated()==False:
        form=registerForm(request.POST or None) 
        if form.is_valid():
            email = form.cleaned_data['email']
            print ("yup")
        elif form.is_valid()==False:
            print ("nup")
            print (form.errors)
        print("eh")     
        context= {
            "extendVar":"baseNotLoggedIn.html",
            "form":form,
        }
base.html:

{% extends extendVar %}

{% block title %}
    {{ block.super }} lagro
{% endblock %}

{% block fname %}
    {{ form.fname }}
{% endblock %}

{% block lname %}
    {{ form.lname }}
{% endblock %}

{% block email %}
    {{ form.email }}
{% endblock %}

{% block emailConfirm %}
    {{ form.emailConfirm }}
{% endblock %}

{% block password %}
    {{ form.password }}
{% endblock %}
baseNotLoggedIn.html

<form method="post" action="{% url 'try3' %}">
  {% csrf_token %}
  <div class="row row-buffer">
      <div class="col-sm-6" style="padding-right:5px;" >
        {% block fname %} {% endblock %}                
        <!-- <input class="form-control" placeholder="First Name" id="fname"> -->
      </div>

      <div class="col-sm-6" style="padding-left:5px;">
        {% block lname %} {% endblock %}
        <!-- <input class="form-control" placeholder="Last Name" id="lname"> -->
      </div>

    </div>
    <div class="row row-buffer">
      <div class="col-sm-12 form-group-lg">
        {% block email %} {% endblock %}
        <!-- <input class="form-control" placeholder="Email" id="email"> -->

      </div>
    </div>

    <div class="row row-buffer">
      <div class="col-sm-12 form-group-lg">
        {% block emailConfirm %} {% endblock %}
      </div>
    </div>

    <div class="row row-buffer">
      <div class="col-sm-12 form-group-lg">
        {% block password %} {% endblock %}                
        <!-- <input type="password" class="form-control" placeholder="Password" id="password"> -->
      </div>
    </div>

    <div class="row row-buffer">
      <div class="col-sm-12 form-group-lg">
        <button type = "submit" class="btn btn-success btn-lg" style="outline-width:0;">Submit</button>
      </div>
    </div>
  </form>

它没有显示,因为您没有在模板中呈现任何错误。引述自:

您需要确保我们处理每个字段和字段的任何错误 整个表单的所有错误。注{form.non_field_errors} 在表单和模板的顶部,查找每个模板上的错误 领域使用{{form.name\u of_field.errors}显示表单列表 错误


阅读以了解如何在模板中呈现表单错误。

将forms.py更改为此

class registerForm(forms.Form):
    fname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'First Name','required': True}))
    lname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'Last Name','required': True}))
    email = forms.EmailField(max_length=256, label="", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Email','required': True}))
    emailConfirm = forms.EmailField(max_length=256, label="", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Confirm email','required': True}))
    password = forms.CharField(max_length=256, label="", required=True, widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': 'Password','required': True}))
注意:添加“必需”:符合您的属性

看这个

>>> name = forms.TextInput(attrs={'required': True})
>>> name.render('name', 'A name')
'<input name="name" type="text" value="A name" required />'
>name=forms.TextInput(attrs={'required':True})
>>>name.render('name','A name')
''

来源:

哦,好的,非常感谢!现在它起作用了。一个简单的问题:对于表单,您是使用注册redux之类的第三方,还是只制作自己的表单?我更喜欢自己的表单。
>>> name = forms.TextInput(attrs={'required': True})
>>> name.render('name', 'A name')
'<input name="name" type="text" value="A name" required />'