繁体   English   中英

带引导的Django表单

[英]django form with bootstrap

我正在尝试使用Django处理表单。 我来自PHP背景,从未使用过任何框架。 我曾经用HTML以及后端自己编写表单的所有字段。 我使用自己的方法来验证它们。

现在,来到Django,它具有模型形式。 但是,我也想在代码中使用引导程序。 所以,我写了这样的HTML代码:

<div class='form-group'>
 <label class='control-label col-md-2 col-md-offset-2' for='id_email'>Contact</label>
 <div class='col-md-6'>
   <div class='form-group'>
     <div class='col-md-11'>
       <input class='form-control' id='id_email' placeholder='E-mail' type='text'>
     </div>
   </div>
   <div class='form-group internal'>
    <div class='col-md-11'>
      <input class='form-control' id='id_phone' placeholder='Phone: (xxx) - xxx xxxx' type='text'>
    </div>
  </div>
</div>
</div>

现在,我想在后端对其进行验证。 我的模型如下:

class Student(models.Model):

    def __str__(self):
        return self.name

    name = models.CharField(max_length=200)
    enrollment_no = models.CharField(max_length=10)
    batch = models.CharField(max_length=4)
    father_income = models.IntegerField(max_length=100)
    email = models.CharField(max_length=1000)
    mobile_number = models.CharField(max_length=1000)

现在,验证以上表格的最佳方法是什么? 请帮我解决这个问题。

对于表单,可以使用django的模型表单。 您可以使用class Meta将一些定义添加到模型表单中:

class StudentForm(forms.ModelForm):

    class Meta:
        model = Student
        fields = [
            'name', 'enrollment_no', # etc... 
        ]
        widgets = { 
            'name': forms.TextInput( attrs={ 'class': 'form-control', 'placeholder': 'Title', 'required': True, } ),
            'enrollment_no': # etc...
        }

    # you can also override validation/clean/save/etc methods here

*注意-由于您的所有字段都是必填字段(根据您的模型,并且因为我们在此处使用的是模型表格),因此django将验证是否要求所有字段。

然后,在模板中(假设您将上下文中的表单实例作为form传递给模板),您可以像这样访问每个字段:

...
...
<div class='col-md-11'>
    {{ form.name }}
</div>
...
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM