isnull filter

This commit is contained in:
Kseninia Mikhaylova 2024-06-26 12:46:25 +03:00
parent 8c31b9be25
commit d6a13ac845
2 changed files with 46 additions and 12 deletions

View File

@ -506,11 +506,12 @@
"documentation": {} "documentation": {}
}, },
{ {
"label": "DjangoFilterBackend", "label": "django_filters",
"importPath": "django_filters.rest_framework", "kind": 6,
"description": "django_filters.rest_framework",
"isExtraImport": true, "isExtraImport": true,
"detail": "django_filters.rest_framework", "importPath": "django_filters",
"description": "django_filters",
"detail": "django_filters",
"documentation": {} "documentation": {}
}, },
{ {
@ -1094,7 +1095,25 @@
"kind": 6, "kind": 6,
"importPath": "back.object.views", "importPath": "back.object.views",
"description": "back.object.views", "description": "back.object.views",
"peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\nclass Element3DViewSet(viewsets.ModelViewSet):\n queryset = Element3D.objects.all()\n serializer_class = Element3DSerializer\n filterset_fields = ('parent', )\n filter_backends = [DjangoFilterBackend]", "peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\nclass NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )",
"detail": "back.object.views",
"documentation": {}
},
{
"label": "NumberInFilter",
"kind": 6,
"importPath": "back.object.views",
"description": "back.object.views",
"peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(\n field_name=\"parent\",\n lookup_expr=\"isnull\",",
"detail": "back.object.views",
"documentation": {}
},
{
"label": "Element3DFilter",
"kind": 6,
"importPath": "back.object.views",
"description": "back.object.views",
"peekOfCode": "class Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(\n field_name=\"parent\",\n lookup_expr=\"isnull\",\n )\nclass Element3DViewSet(viewsets.ModelViewSet):",
"detail": "back.object.views", "detail": "back.object.views",
"documentation": {} "documentation": {}
}, },
@ -1103,7 +1122,7 @@
"kind": 6, "kind": 6,
"importPath": "back.object.views", "importPath": "back.object.views",
"description": "back.object.views", "description": "back.object.views",
"peekOfCode": "class Element3DViewSet(viewsets.ModelViewSet):\n queryset = Element3D.objects.all()\n serializer_class = Element3DSerializer\n filterset_fields = ('parent', )\n filter_backends = [DjangoFilterBackend]", "peekOfCode": "class Element3DViewSet(viewsets.ModelViewSet):\n queryset = Element3D.objects.all()\n serializer_class = Element3DSerializer\n filterset_class = Element3DFilter",
"detail": "back.object.views", "detail": "back.object.views",
"documentation": {} "documentation": {}
}, },

View File

@ -1,16 +1,31 @@
from rest_framework import viewsets from rest_framework import viewsets
from django_filters.rest_framework import DjangoFilterBackend import django_filters
from .models import ClickableArea, Element3D from .models import ClickableArea, Element3D
from .serializers import ClickableAreaSerializer, Element3DSerializer from .serializers import ClickableAreaSerializer, Element3DSerializer
class ClickableAreaViewSet(viewsets.ModelViewSet): class ClickableAreaViewSet(viewsets.ModelViewSet):
queryset = ClickableArea.objects.all() queryset = ClickableArea.objects.all()
serializer_class = ClickableAreaSerializer serializer_class = ClickableAreaSerializer
class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):
pass
class Element3DFilter(django_filters.rest_framework.FilterSet):
parent = NumberInFilter(
field_name="parent",
lookup_expr="in",
)
parent__isnull = django_filters.BooleanFilter(
field_name="parent",
lookup_expr="isnull",
)
class Element3DViewSet(viewsets.ModelViewSet): class Element3DViewSet(viewsets.ModelViewSet):
queryset = Element3D.objects.all() queryset = Element3D.objects.all()
serializer_class = Element3DSerializer serializer_class = Element3DSerializer
filterset_class = Element3DFilter
filterset_fields = ('parent', )
filter_backends = [DjangoFilterBackend]