Добавление заполнителя в форму в Django при использовании django-фильтра - PullRequest
0 голосов
/ 25 декабря 2018

Я занимаюсь разработкой веб-приложения, которое отображает html-таблицу с использованием django-tables2 и позволяет фильтровать эту таблицу с помощью django-filter.В моем html-шаблоне я могу просто указать {% filter.form %}, и я получаю полную форму для фильтрации моей таблицы, которая, на мой взгляд, очень удобна и проста.

Однако я хотел бы добавить в эту форму заполнители, которые быбыть в плоскости html (используя Bootstrap4) примерно так:

<div class="container">
    <form>
        <div class="form-group">
            <label for="email">Email:</label>
            <input type="email" class="form-control" id="email"
             placeholder="ENTER PLACEHOLDER HERE" name="email">
            </div>
       </form>
    </div>

(пример взят здесь: https://www.w3schools.com/bootstrap4/tryit.asp?filename=trybs_form_basic&stacked=h и отредактировано)

Как добавить заполнитель при работес django-фильтрами, и все, что я делаю, это добавляю % filter.form %} к моему шаблону?

Редактировать: Мой вопрос был наполовину завершен.Ответ, данный @schwobaseggl, отлично работает для большинства фильтров.Однако, когда отображаются RangeFilter и два поля (одно для максимального значения и одно для минимального значения), как установить два отдельных заполнителя?Можно поместить одинаковый заполнитель в оба поля, как описано здесь: Как поместить заполнитель в фильтр диапазона дат Django .

1 Ответ

0 голосов
/ 25 декабря 2018

Когда вы определяете Filter, предоставьте атрибут placeholder через attrs kwarg конструктора widget:

# ...
from django.forms.widgets import TextInput, ...

class FooFilter(filters.FilterSet):
    bar = filters.CharFilter(..., widget=TextInput(attrs={'placeholder': 'baz'}))
...