Django FilterView показывает дублированный фильтр в шаблоне
У меня проблема с отображением фильтров в моем шаблоне. У меня есть представление в views.py следующим образом:
class SearchDocView(FilterView):
template_name = 'searchdoc.html'
context_object_name = 'founddocs'
filterset_class = FilterDoc
paginate_by = 5
def get_queryset(self):
queryset = super(SearchDocView, self).get_queryset()
queryset = FilterDoc(self.request.GET, queryset)
return queryset
Я создал свой собственный фильтр в filters.py:
class FilterDoc(django_filters.FilterSet):
usr_choices=(
('foo.user', 'foo.user'),
('test.user','test.user'),
)
class Meta:
model=Doc
fields = ['doc_application_id','doc_client_nip','user_id']
appid = django_filters.CharFilter(field_name='doc_application_id',lookup_expr='icontains')
nip = django_filters.CharFilter(field_name='doc_client_nip',lookup_expr='icontains')
usrid = django_filters.MultipleChoiceFilter(field_name='user_id', choices=usr_choices)
мой шаблон:
<body>
<form method="get">
{{ filter.form.as_p }}
<button type="submit">Search</button>
</form>
{% if founddocs %}
<table>
<thead>
<tr>
<td>DOC APPLICATION ID</td>
...
</tr>
</thead>
<tbody>
<tr>
{% for doc in founddocs %}{#WZORZEC NAZWA MODELU + '_list'#}
<td>{{ doc.doc_application_id }}</td>
...
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>Nothing to see here!.</p>
{% endif %}
</body>
Фильтры работают отлично. Проблема в том, что каждый раз, когда я загружаю страницу, я вижу дублирующиеся поля фильтра. Например:

Почему так? Как избавиться от дубликатов. Почему у пользователя два разных виджета. Второй (combobox) связан с id, а не с именем пользователя. Когда я пытаюсь выбрать что-то, я получаю "Field 'id' expected a number but got 'test.user'"
Благодаря @Willem Van Onsem нашел проблему. Я заменил fields на fields=[], потому что это необходимо для класса Meta. Что касается пользователей, то я заменил ключи на id пользователя согласно админ панели '''
usr_choices=(
(1, 'foo.user'),
(2, 'test.user'),
)
class Meta:
model=Doc
fields=[]
'''