Выпадающий список формы Django не отображается
Я хочу создать выпадающий список в форме. Я следовал этому подходу здесь. Если я использую {{ form.as_p }}
, выпадающий список отображается просто отлично. Но рендеринг формы с помощью as_p
выглядит ужасно. Вместо этого я перебираю поля формы и получаю доступ к их параметрам, чтобы стилизовать вводимые данные. Я пытаюсь поймать поле выпадающего списка с помощью if-выражения с условием field.widget.input_type == "select"
. Когда страница рендерится, я должен увидеть надпись "This is where my dropdown goes" там, где должно быть поле выпадающего списка. Но этого не происходит, поле отображается как текстовый ввод, как и любое другое поле, поэтому мое условие if не работает. Я отладил свою функцию представления и подтвердил, что поле, соответствующее выпадающему списку, действительно имеет параметр .widget.input_type == "select"
. Что я делаю неправильно?
<form action="{% url 'myapp:newrecord' %}" method='post'>
{% csrf_token %}
{% for field in form %}
<div class="form-group row">
{% if field.widget.input_type == "select" %}
<p>This is where my dropdown goes.</p>
{% else %}
<label for="{{ field.id_for_label }}" class="col-sm-2 col-form-label">{{ field.label }}</label>
<div class="col-sm-10">
<input type="text" name="{{ field.html_name }}" class="form-control" id="{{ field.id_for_label }}" placeholder="{{ field.label }}" required>
</div>
{% endif %}
</div>
{% empty %}
<p>This shouldn't be empty but it is.</p>
{% endfor %}
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
Нашел ответ.
{% if field.field.widget.input_type == "select" %}