File: filters.py

package info (click to toggle)
djangorestframework-filters 1.0.0.dev2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 420 kB
  • sloc: python: 2,855; makefile: 6
file content (38 lines) | stat: -rw-r--r-- 956 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

from django_filters import FilterSet as DFFilterSet

from rest_framework_filters import filters
from rest_framework_filters.filterset import FilterSet as DRFFilterSet

from ..testapp.models import Note, User


# df-filters
class NoteFilterWithExplicitRelated(DFFilterSet):
    class Meta:
        model = Note
        fields = {
            'title': [
                'exact', 'contains', 'startswith', 'endswith',
                'iexact', 'icontains', 'istartswith', 'iendswith',
            ],
            'author__username': ['exact'],
        }


# drf-filters
class UserFilterWithAll(DRFFilterSet):
    username = filters.AutoFilter(lookups='__all__')

    class Meta:
        model = User
        fields = []


class NoteFilterWithRelatedAll(DRFFilterSet):
    title = filters.AutoFilter(lookups='__all__')
    author = filters.RelatedFilter(UserFilterWithAll, queryset=User.objects.all())

    class Meta:
        model = Note
        fields = []