我究竟如何使用 crispy_addon 来添加表单字段?

How exactly do I use crispy_addon to prepend a form field?

我正在使用 Django crispy 表单和 modelform_factory 来生成我的表单。它看起来像这样:

ModelForm = modelform_factory(Street)
form = ModelForm(request.POST or None, instance=my_record)

然后在模板中我运行这个:

{% crispy form %}

它完全按照预期生成了我的 bootstrap4 表单。但是,我希望在我的很长的表单中有一个字段来添加一个前置文本(@ 用于 Twitter 句柄)。在 documentation 中显示:

templatetags.crispy_forms_field.crispy_addon(field, append='', prepend='', form_show_labels=True)[source]

Renders a form field using bootstrap’s prepended or appended text:

{% crispy_addon form.my_field prepend="$" append=".00" %}

You can also just prepend or append like so

    {% crispy_addon form.my_field prepend=”$” %} {% crispy_addon form.my_field append=”.00” %}

我试过在我的模板中使用它:

{% crispy form %}
{% crispy_addon form.url prepend=”@” %}

但是这个returns出现以下错误:

Invalid block tag on line 12: 'crispy_addon', expected 'endblock'. Did you forget to register or load this tag?

我做错了什么?

您需要将代码加载到模板中,将以下内容添加到模板顶部。原因是此标签与 {% crispy %} 标签位于不同的文件中。

{% load crispy_forms_field %}