使用django-crispy-forms中的formset呈现表格行

时间:2014-02-13 12:57:46

标签: django tabular django-crispy-forms formset

我希望将实例列表显示为formset django-crispy-formsbootstrap,其中每个实例都显示为一行,所有字段都水平排列。

我能找到的所有例子似乎都是在垂直布局的情况下渲染实例。

我想用:

helper.form_class = 'form-horizontal'

可能有用,但似乎没有效果。

2 个答案:

答案 0 :(得分:2)

在帮助程序上使用template属性(记录为here): helper.template = 'bootstrap/table_inline_formset.html'

答案 1 :(得分:1)

这是让我找到解决方案的帖子,我在这里为那些刚开始使用脆弱表格的人提供了更全面的解释

形式:

let a1 = [1, 2, 3];
let a2 = [2, 3, 4];
let a3 = [2, 4, 5];

let result = a1.filter(v => a2.includes(v) && a3.includes(v));

console.log(result);

查看:

from crispy_forms.helper import FormHelper, Layout
...

class MyForm(forms.ModelForm):

    class Meta:
        model = MyModel
        fields = ['field1', 'field2', 'field3']


MyFormSet = modelformset_factory(MyModel, form=MyForm, extra=0)


class MyFormSetHelper(FormHelper):
    def __init__(self, *args, **kwargs):
        super(MyFormSetHelper, self).__init__(*args, **kwargs)
        self.layout = Layout(
            'field1',
            'field2',
            'field3'
        )
        self.template = 'bootstrap/table_inline_formset.html'

模板:

formset = MyFormSet(queryset=my_qs)
helper = MyFormSetHelper()
context = {'formset': formset, 'helper': helper}
return render(request, 'my_template.html', context)