将按钮附加到 django-crispy-forms 中的默认布局

Append button to default layout in django-crispy-forms

我想为多个表单编写表单助手。默认布局下所有字段都正确呈现,我想做的唯一更改是在末尾添加提交按钮,如下所示:

class MyFormHelper(FormHelper):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        // Other initialization code here
        self.layout = Layout(
            // default, inherited layout here
            Submit('submit', 'Submit', css_class='btn btn-primary')
        )

但是我不知道是否有任何方法可以显式构建默认布局。我知道我可以明确指定要在布局中呈现的所有字段,但是我不想将表单助手耦合到一个表单。

我也试过了

        self.layout.append = Submit('submit', 'Submit', css_class='btn btn-primary')

但是self.layout此时似乎是None

您正在寻找 FormHelperadd_input 方法。 See the code here, lines 153 and 275.

class MyFormHelper(FormHelper):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        // Other initialization code here
        self.add_input(Submit('submit', 'Submit', css_class='btn btn-primary'))