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

n3h0vuf2  于 2023-07-01  发布在  Go
关注(0)|答案(2)|浏览(145)

我在想脆皮在背景里做了什么。
当我将标签{% crispy form %}放入HTML块时,我的表单布局和清晰的引导格式(from crispy_forms.layout import Layout, Row, Columnfrom crispy_forms.bootstrap import AppendedText, InlineRadios)被正确呈现,但提交按钮不会将发送到我的模型或重定向用户。
当我将标签{{ form|crispy }}放入HTML块中时,我的表单布局没有呈现,但是提交按钮工作并将用户输入发布到我的模型中。
我试图找出如何得到一个漂亮的布局 * 和 * 有一个功能的HTML表单。

o2rvlv0m

o2rvlv0m1#

我已经想明白了
您必须在模型/表单中的Python助手中添加POST按钮,才能使{% crispy form %}标记工作。
我最初在HTML <button class="btn btn-primary" type="submit">Submit</button>中有一个提交按钮,它只适用于crispy filter {{ 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'
uklbhaso

uklbhaso2#

对我来说,把提交按钮放在表单之外也是有效的:

<div class="accounts-form">
<form id="signupform" method="POST" action="{% url 'account_signup' %}">
    {% csrf_token %}
    {% crispy form %}
    {% if redirect_field_value %}
        <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}"/>
    {% endif %}
</form>
<button class="btn-accounts" form="signupform" type="submit">Account erstellen</button>

相关问题