| 12345678910111213141516171819202122 |
- import django_filters
- from .models import Tag
- __all__ = (
- 'TagFilter',
- )
- class TagFilter(django_filters.ModelMultipleChoiceFilter):
- """
- Match on one or more assigned tags. If multiple tags are specified (e.g. ?tag=foo&tag=bar), the queryset is filtered
- to objects matching all tags.
- """
- def __init__(self, *args, **kwargs):
- kwargs.setdefault('field_name', 'tags__slug')
- kwargs.setdefault('to_field_name', 'slug')
- kwargs.setdefault('conjoined', True)
- kwargs.setdefault('queryset', Tag.objects.all())
- super().__init__(*args, **kwargs)
|