This commit is contained in:
nikolark committed 2015-01-17 16:42:00 +01:00
1 parent f869c9066a
commit d42d6253c4
2 files changed
+9 -3

No files matched your search

+7 -1
View File
@@ -1,6 +1,7 @@
import django_filters import django_filters
from dpdapi.models import Alias from dpdapi.models import Alias
from rest_framework.filters import BaseFilterBackend
class AliasRegexFilter(django_filters.FilterSet): class AliasRegexFilter(django_filters.FilterSet):
@@ -8,4 +9,9 @@ class AliasRegexFilter(django_filters.FilterSet):
source_regex = django_filters.CharFilter(name="source", lookup_type='iregex') source_regex = django_filters.CharFilter(name="source", lookup_type='iregex')
class Meta: class Meta:
model = Alias model = Alias
class AliasRegexFilterBackend(BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
return AliasRegexFilter(request.query_params, queryset=queryset).qs
+2 -2
View File
@@ -5,7 +5,7 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework import status, filters, viewsets from rest_framework import status, filters, viewsets
from dpdapi.filters import AliasRegexFilter from dpdapi.filters import AliasRegexFilterBackend
from dpdapi.models import Alias, Domain, User from dpdapi.models import Alias, Domain, User
from dpdapi.serializers import AliasSerializer, AliasIdSerializer, DomainSerializer, UserSerializer from dpdapi.serializers import AliasSerializer, AliasIdSerializer, DomainSerializer, UserSerializer
@@ -18,7 +18,7 @@ class AliasViewSet(viewsets.ModelViewSet):
queryset = Alias.objects.all() queryset = Alias.objects.all()
serializer_class = AliasSerializer serializer_class = AliasSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
filter_backends = (filters.DjangoFilterBackend, AliasRegexFilter) filter_backends = (filters.DjangoFilterBackend, AliasRegexFilterBackend)
filter_fields = ('domain', 'domain__name',) filter_fields = ('domain', 'domain__name',)
@list_route(methods=['post']) @list_route(methods=['post'])