CrispyForms: FormHelper — чтобы получить в другом месте, сохраните две формы из той же модели

#python #html #django #django-forms #django-crispy-forms

#python #HTML #django #django-forms #django-crispy-forms

Вопрос:

При использовании FormHelper и вызове формы с помощью {% crispy form %} него выдается форма, заключенная в <form> теги.

Однако мой шаблон разделен на два столбца. Первый столбец содержит сгенерированную {% crispy form %} . Второй столбец содержит жестко запрограммированную форму. Все записи взяты из одной и той же модели. Первый столбец более «динамичный», второй столбец более «фиксированный».

Я хотел бы иметь возможность сохранять обе формы (оба столбца) одновременно, предполагая поместить обе формы в одни и те же <form> теги, например, как показано ниже:

 <form method="post">
{% csrf_token %}

{% block col8_content %}
{% crispy form %}
{% endblock col8_content %}
{% block col4_content %}
<div class="form-group row">
...
</div>

<input type="submit" value="Submit">
{% endblock col4_content %}

</form>
  

Q:
Есть ли способ объединить возможность простого создания форм программно (FormHelper) с элементами вручную?

Ответ №1:

Установите

 self.helper.form_tag = False
  

Затем вы можете вручную добавить открывающий и закрывающий form теги в нужное место.

Здесь указывается, следует ли отображать теги при использовании макета. Если установлено значение False, форма отображается без тегов. По умолчанию используется значение True.

Смотрите https://django-crispy-forms.readthedocs.io/en/latest/form_helper.html