python - 带 Bootstrap 的 django 表单

标签 python django forms twitter-bootstrap

我正在尝试在 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/

相关文章:

python - 使用登录的用户名作为 django 中的字段值

php - 为按钮点击添加警报

带 mustache 的 Controller 未接收到 Spring 表单数据

javascript - 如何通过Javascript动态删除表单元素?

python - 包装对 Python 类方法的调用

python - 几天不活动后,Django Allauth 似乎将用户注销

javascript - 根据按钮单击更改模态的 href

python - Pandas 'Str' 对象没有属性 'to_csv'

python - Appengine REST 库 - Python 和 Django

Python 写入缓冲区而不是文件