#django #django-crispy-forms
#django #django-crispy-forms
Вопрос:
Я использую Django crispy forms и modelform_factory для создания моей формы. Это выглядит примерно так:
ModelForm = modelform_factory(Street)
form = ModelForm(request.POST or None, instance=my_record)
Затем в шаблоне я запускаю это:
{% crispy form %}
И он генерирует мою форму bootstrap4 точно так, как задумано. Тем не менее, я хотел бы иметь одно поле в моей очень длинной форме с добавленным текстом (@ для дескриптора Twitter). В документации говорится:
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=”@” %}
Но это возвращает следующую ошибку:
Invalid block tag on line 12: 'crispy_addon', expected 'endblock'. Did you forget to register or load this tag?
Что я здесь делаю не так?
Ответ №1:
Вам нужно будет загрузить тег в свой шаблон и добавить следующий в начало вашего шаблона. Причина в том, что этот тег находится в файле, отличном от тега {% crispy %}.
{% load crispy_forms_field %}
Комментарии:
1. Ах, здорово, такое простое решение! Спасибо!