Django Crispy Forms重新排列布局并保留Bootstrap内联格式?

时间:2014-02-02 22:14:24

标签: django forms twitter-bootstrap django-crispy-forms

我目前正在开发一个Django项目,我正在使用cripsy-forms格式化并与Bootstrap一起显示HTML表单。如果我允许Crispy-Forms使用默认布局顺序,它(将在大多数情况下)格式化正确的HTML布局以使用带引导程序的内联表单。

为了重新排列表单上字段的顺序,我试图利用布局助手。当我添加布局助手时,Crispy-Forms失去了它的内联标签功能,所有标签都显示在其对应的字段上方。

如何让Crispy Forms重新排序布局并仍然保留Bootstrap内联格式?

class MyEntryForm(ModelForm):
def __init__(self, *args, **kwargs):
    super(MyEntryForm, self).__init__(*args, **kwargs)

    self.helper = FormHelper(self)
    self.helper.form_id = 'id-MyEntryForm'
    self.helper.help_text_inline = True
    self.helper.error_text_inline = True
    self.form_show_labels = True
    self.helper.form_method = 'post'
    self.helper.form_action = 'submit'
    self.helper.form_tag = False
    self.helper.add_input(Submit('submit', 'Submit'))
    self.helper.form_class = 'form-inline'
    self.helper.field_template = 'bootstrap3/layout/inline_field.html'

    self.helper.layout = Layout(
        'field1',
        'field3',
        'field2',

    )

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用fields属性?生成的Form类将具有表单域in the order specified in the fields attribute

class MyEntryForm(ModelForm):
    class Meta:
        model = "mymodel"
        fields = ['field1', 'field3', 'field2']