Рендеринг форм в HMTL с помощью django-easy-select2
Я использую django-easy-select2 для обработки ввода данных в несколько manytomanyfields в модели - под названием Engagement.
Я использую bootstrap и crispy forms для рендеринга формы участия в HTML.
В целом рендеринг работает так, как ожидается/требуется. Однако размеры полей формы для многих данных изначально очень малы и требуют выбора/ввода данных, прежде чем они расширятся. После ввода данных поля расширяются. Но я бы хотел, чтобы эти поля изначально отображались в размере, установленном bootstrap.
Например, я установил bootstrap как col-6, но начальный рендеринг мультомании только col-1 или даже меньше. Когда вводятся данные, поле расширяется до col-6 и не более, что хорошо, но я бы хотел, чтобы поле начиналось с col-6, даже при отсутствии данных.
Ниже приведен соответствующий код.
engagements.view:
class EngagementCreateView(CreateView):
model = Engagement
form_class = select2_modelform(Engagement, attrs={'width': 'auto'}) # this sets the widths of the field
template_name = "engagements/engagement_create.html"
def form_valid(self, form):
print(form.cleaned_data)
return super().form_valid(form)
создайте шаблон помолвки
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<h4>{% if form.instance.pk %}Edit engagement{% else %}Create new engagement{% endif%}</h4>
<div class="form-group">
<form method="post" novalidate>
{% csrf_token %}
<div class="row mt-1">
<div class="col-6"> # I'm rendering the width of fields here
{{ form.date|as_crispy_field }}
{{ form.projects|as_crispy_field }}
{{ form.stakeholders|as_crispy_field }}
{{ form.ppdds|as_crispy_field }}
</div>
<div class="col-6">
{{ form.follow_up_date|as_crispy_field }}
{{ form.engagement_types|as_crispy_field }}
{{ form.engagement_workstreams|as_crispy_field }}
</div>
</div>
<div class="row mt-1">
<div class="col-lg">
{{ form.summary|as_crispy_field }}
</div>
</div>
<br>
<input class="btn btn-primary" type="submit"
value="{% if form.instance.pk %}Save{% else %}Create{% endif%}">
<a class="btn btn-primary" href="../">Cancel</a></p>
</form>
</div>
{% endblock %}
Я думаю, что наиболее подходящая часть документации django-easy_select2 находится здесь https://django-easy-select2.readthedocs.io/en/latest/usage.html.