Django Crispy Forms 似乎不支持您想通过其 API 执行的操作。但是,您可以简单地自己在呈现表单的模板中添加按钮标记,您只需要防止脆皮呈现form
标签:
# form python code
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.helper.form_tag = False
{# template code #}
<form action="." method="POST">
<input type="submit" value="Respond" name="respond">
<input type="submit" value="Respond and Close" name="respond_and_close">
<input type="submit" value="Close" name="close">
<input type="submit" value="Change Owner" name="change_owner">
{% crispy form form.helper %}
</form>
另一种可能性是覆盖脆皮的whole_uni_form.html
模板。如果您使用的是引导模板包(默认),您可以在项目模板目录中名为“bootstrap”的子目录中创建该文件,并使其如下所示:
{# templates/bootstrap/whole_uni_form.html #}
{% load crispy_forms_utils %}
{% specialspaceless %}
{% if form_tag %}<form {{ flat_attrs|safe }} method="{{ form_method }}" {% if form.is_multipart %} enctype="multipart/form-data"{% endif %}>{% endif %}
{% if form_method|lower == 'post' and not disable_csrf %}
{% csrf_token %}
{% endif %}
{% if inputs %}
<div class="form-actions">
{% for input in inputs %}
{% include "bootstrap/layout/baseinput.html" %}
{% endfor %}
</div>
{% endif %}
{% include "bootstrap/display_form.html" %}
{% if form_tag %}</form>{% endif %}
{% endspecialspaceless %}
请记住,这将影响在您的站点中使用crispy 呈现的任何表单。