让脆脆的表单与 django-filter 一起使用的简单方法

问题描述 投票:0回答:2
django django-templates django-crispy-forms django-filter
2个回答
5
投票

我只需要添加加载脆标签。

{% extends "base.html" %}
{% load crispy_forms_tags %}

{% block content %}
    <form action="" method="get">
        {{ filter.form|crispy }}
        <input type="submit" />
    </form>
    {% for obj in filter %}
        {{ obj.name }} - ${{ obj.price }}<br />
    {% endfor %}
{% endblock %}

0
投票

如果您还想覆盖 django-filter 的过滤器表单的布局,您可以覆盖 FilterSet 类上的

form
属性,将助手附加到它并返回它。

class ValuationFilters(django_filters.FilterSet):
    class Meta:
        model = Valuation
        fields = (
            '...',
        )

    @property
    def form(self):
        form = super().form

        form.helper = FormHelper()
        form.helper.layout = Layout(
            Fieldset(
                'First arg is the legend of the fieldset',
                '...',
            ),
            Submit('submit', 'Submit', css_class='button is-primary'),
        )

        return form

确保还使用特殊的 cripsy 标签而不是

|crispy
模板过滤器,以便帮助程序实际执行。

{% load crispy_forms_tags %}

<form method="get">
    {% crispy filter.form %}
</form>

这是对 Addison Klinke 对 hum3 的回答提出的问题的回应。

© www.soinside.com 2019 - 2024. All rights reserved.