Closes #1203: Implemented query filters for all models

This commit is contained in:
Jeremy Stretch
2017-06-19 16:10:18 -04:00
parent cd592abb2d
commit 57bad0a7cb
10 changed files with 223 additions and 127 deletions

View File

@@ -3,8 +3,8 @@ from __future__ import unicode_literals
from rest_framework.viewsets import ModelViewSet
from extras.api.views import CustomFieldModelViewSet
from tenancy import filters
from tenancy.models import Tenant, TenantGroup
from tenancy.filters import TenantFilter
from utilities.api import WritableSerializerMixin
from . import serializers
@@ -16,6 +16,7 @@ from . import serializers
class TenantGroupViewSet(ModelViewSet):
queryset = TenantGroup.objects.all()
serializer_class = serializers.TenantGroupSerializer
filter_class = filters.TenantGroupFilter
#
@@ -26,4 +27,4 @@ class TenantViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
queryset = Tenant.objects.select_related('group')
serializer_class = serializers.TenantSerializer
write_serializer_class = serializers.WritableTenantSerializer
filter_class = TenantFilter
filter_class = filters.TenantFilter

View File

@@ -9,6 +9,13 @@ from utilities.filters import NullableModelMultipleChoiceFilter, NumericInFilter
from .models import Tenant, TenantGroup
class TenantGroupFilter(django_filters.FilterSet):
class Meta:
model = TenantGroup
fields = ['name', 'slug']
class TenantFilter(CustomFieldFilterSet, django_filters.FilterSet):
id__in = NumericInFilter(name='id', lookup_expr='in')
q = django_filters.CharFilter(
@@ -16,7 +23,6 @@ class TenantFilter(CustomFieldFilterSet, django_filters.FilterSet):
label='Search',
)
group_id = NullableModelMultipleChoiceFilter(
name='group',
queryset=TenantGroup.objects.all(),
label='Group (ID)',
)