使用django-crispy组成布局时出错

时间:2015-06-01 14:36:26

标签: python django layout django-crispy-forms

我想在Django中使用常见布局使用django-crispy构建多个表单。我阅读了关于编写布局的清晰文档,但我不能自己完成,因为我收到了错误消息:

append()只需要一个参数(给定2个)。

请参阅下面的代码:

import pandas as pd
df = pd.DataFrame([1, 2, 3], columns = ['c'], index = ['A','B','C'])

所以,我需要帮助才能做到这一点并转到另一种形式。

1 个答案:

答案 0 :(得分:1)

您正在创建一个CommonLayout表单类,并且您尝试让其他表单继承该表单的布局。

实现此目的的一种方法是使CollectionForms继承自CommonLayout,如下所示:

#the class with the form
class CollectionForms(CommonLayout):

    def __init__(self, *args, **kwargs):
        super(CollectionForms, self).__init__(*args, **kwargs)

        self.helper.form_action = 'collection'

        self.helper.layout.append(
            FormActions(
                StrictButton('Pass', type="submit", name="result", value="True", css_class="btn btn-success"),
            )
        )

请注意,这会从Layout()表单继承CommonLayout对象,并对其进行扩展。您没有重新初始化FormHelper类中的CollectionForms对象,而是修改了从FormHelper表单类创建的CommonLayout对象。您之前的示例未从FormHelper继承CommonLayout,它创建了一个新的Layout()对象,这是您问题的根源。