0
Можно ли добавить ссылку «Все» к моим наборам фильтров, как это делается в списке фильтров admin? В настоящее время у меня есть этот код, который отлично работает, за исключением того, что у него нет ссылки «Все», чтобы сбросить фильтр для определенных вариантов.django_filters с помощью LinkWidget необходимо очистить фильтр
В моем filters.py
class VersionFilter(FilterSet):
version = AllValuesFilter(widget=widgets.LinkWidget)
codename = AllValuesFilter(widget=widgets.LinkWidget)
class Meta:
model = Version
fields = ['version', 'codename', 'libraries',]
def __init__(self, *args, **kwargs):
super(VersionFilter, self).__init__(*args, **kwargs)
libraries = Library.objects.values_list('name', flat=True).distinct()
library = ChoiceFilter(
name = "libraries__name",
choices = set([(s, s) for s in libraries]),
widget = widgets.LinkWidget,
)
self.filters['libraries'] = library
В моем views.py
class VersionsListViewFilter(FilterView):
context_object_name = 'versions_list'
filterset_class = VersionFilter
Я получаю эту ошибку 'Тип исключения: ТипError Исключительное значение: __init __() получил неожиданный аргумент ключевого слова 'empty_label' Исключение Место: /Library/Python/2.7/site-packages/django/forms/fields.py в __init__, строка 672' –
Пожалуйста, покажите мне свой код, как у вас есть использовали вышеупомянутое решение, используйте dpaste.com, чтобы вставить свой код и поделиться ссылкой. –
@YorikZiru Я обновил ответ, чтобы показать вам, как вам нужно его использовать. Кроме того, если 'empty_label' не работает при фильтрации, попробуйте установить его в пустую строку' ''' –