Есть ли у вас безумные требования к нулевым допускам? Как в случае: люди будут на самом деле умирать или причинять вред, или вы будете уволены, если визуализация страницы занимает дополнительные несколько миллисекунд?
Я сомневаюсь в этом, поэтому просто дайте фреймворку подняться до точки, где вам нужно больше контроля над выводом HTML - это на самом деле гораздо более вероятный сценарий, чем вам нужно избегать выполнения какого-либо Python для сохранения (при полное предположение) 15 мс.
Когда вам нужен больший контроль, тогда лучше всего склеить некоторый HTML-код ручной работы, или, что еще лучше, создать поле включения / частичное для полей формы, которые вы можете использовать везде, чтобы сэкономить время на ручную запись более вам нужно, но все же дает вам гораздо больше гибкости, чем myform.as_p
и т. д.
Вот грубый фрагмент, который я часто использую и адаптирую, чтобы дать мне большой контроль над полями форм, а также позвольте мне использовать шаблонную среду Django, чтобы сэкономить мое время:
В моем шаблоне:
{% for form_field in myform %}
{% include "path/to/partials/form_field_as_p.html" %}
{% endfor %}
И в этом form_field_as_p.html что-то вроде:
{% if not form_field.is_hidden %}
<p>
{% if form_field.errors %}
{% for error in form_field.errors %}
<span class="errorlist">{{error}}</span>
{% endfor %}
{% endif %}
{{ form_field.label_tag }}
{% if form_field.field.required %}
<span class="required">*</span>
{% endif %}
{{ form_field }}
{% if form_field.help_text %}
<span class="form-help-text">{{ form_field.help_text }}</span>
{% endif %}
</p>
{% else %}
<div>{{ form_field }}</div> {# hidden field #}
{% endif %}