Django {%crispy%}标签与{{form | crispy}}过滤器有什么区别?

时间:2019-11-14 13:25:04

标签: django django-models django-forms django-crispy-forms

我想把背景中的脆脆形式包裹住头。

当我将标记{% crispy form %}放入HTML块中时,我的表单布局和清晰的引导程序格式(from crispy_forms.layout import Layout, Row, Columnfrom crispy_forms.bootstrap import AppendedText, InlineRadios)会正确呈现,但 submit按钮不会显示将发布到我的模型或重定向用户。

当我将标记{{ form|crispy }}放入HTML块中时,我的表单布局不会呈现,但是“提交”按钮确实起作用并将用户输入发布到我的模型中。

我正在尝试弄清楚如何使布局既美观又具有功能性的HTML表单。

1 个答案:

答案 0 :(得分:1)

我知道了,

您必须在模型/表单中的Python帮助程序中添加POST按钮,以使{% crispy form %}标签起作用。

我最初有一个HTML <button class="btn btn-primary" type="submit">Submit</button> HTML中的提交按钮,该按钮仅适用于脆脆的过滤器{{ form|crispy }}

class ProfileUpdateForm(forms.ModelForm):
    class Meta:
        model = Profile

    def __init__(self, *args, **kwargs):
        super(ProfileUpdateForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.layout = Layout(AppendedText('foo','bar')
        self.helper = FormHelper(self)
        self.helper.add_input(Submit('submit', 'Submit', css_class='btn-primary'))
        self.helper.form_method = 'POST'