显示多行和列的Django脆皮形式(Displaying multiple Rows and Col

2019-06-27 10:43发布

我使用Django的脆皮形式与Twitter的引导,以及我在与我的定制形式为多行和列的一些问题。 一个例子问题是,当我尝试的形式分为两列没有任何反应:

class SomeForm(ModelForm):

    helper = FormHelper()
    helper.layout = Layout(
        Column('field1', 'field3'),
        Column('field2', 'field4'),
        )
    )

    class Meta:
        model = Model

综观HTML输出,我看到有所述<div class="formColumn">但形式被显示在一个单一的塔。 也许这是一个CSS问题? 我使用的引导2.1。

Answer 1:

谢谢maraujo。

我已经使用div标签和引导文档来实现这一点: http://twitter.github.com/bootstrap/scaffolding.html

class SomeForm(ModelForm):

    helper = FormHelper()
    helper.layout = Layout(
        Div(
            Div('field1', css_class='span6'),
            Div('field3', css_class='span6'),  
        css_class='row-fluid'), 
    )

    class Meta:
        model = Model

对于bootstrap3取代span6col-xs-6 http://getbootstrap.com/css/#grid



Answer 2:

小2018更新由martinpaulucci了答案:

对于引导4和最新的Django脆皮形式1.7.2使用:

class SomeForm(ModelForm):

    helper = FormHelper()
    helper.layout = Layout(
        Div(
            Field('field1', wrapper_class='col-md-3'),
            Field('field3', wrapper_class='col-md-9'),  
        css_class='form-row') 
    )

    class Meta:
        model = Model

在div标签代替使用领域标签避免不必要的另一个DIV的包装。 要提高,你可以换成你自己的脆皮形式行,如果你要使用多行:

class Row(Div):
    css_class = "form-row"

然后使用:

class SomeForm(ModelForm):

    helper = FormHelper()
    helper.layout = Layout(
        Row(
            Field('field1', wrapper_class='col-md-3'),
            Field('field3', wrapper_class='col-md-9')  
        ) 
    )

    class Meta:
        model = Model


文章来源: Displaying multiple Rows and Columns in django-crispy-forms