我正在尝试在 django 中处理表单。我是PHP出身,从来没有使用过任何框架。我曾经在 HTML 和后端中自己编写表单的所有字段。我用自己的方法来验证它们。
现在,来到 django,它有了模型形式。但是,我也想在我的代码中使用 Bootstrap 。所以,我写了这样的 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>
...
...
关于python - 带 Bootstrap 的 django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012345/