Browse Source

ajusta filter para FileField

pull/2393/head
Leandro Roberto 7 years ago
parent
commit
8d4749ddef
  1. 2
      sapl/api/serializers.py
  2. 12
      sapl/api/views.py

2
sapl/api/serializers.py

@ -109,7 +109,7 @@ class SessaoPlenariaOldSerializer(serializers.ModelSerializer):
) )
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(SessaoPlenariaSerializer, self).__init__(args, kwargs) super(SessaoPlenariaOldSerializer, self).__init__(args, kwargs)
def get_pk_sessao(self, obj): def get_pk_sessao(self, obj):
return obj.pk return obj.pk

12
sapl/api/views.py

@ -6,10 +6,12 @@ from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db.models import Q from django.db.models import Q
from django.db.models import Q from django.db.models import Q
from django.db.models.fields.files import FileField
from django.http import Http404 from django.http import Http404
from django.utils.decorators import classonlymethod from django.utils.decorators import classonlymethod
from django.utils.text import capfirst from django.utils.text import capfirst
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters
from django_filters.rest_framework.backends import DjangoFilterBackend from django_filters.rest_framework.backends import DjangoFilterBackend
from django_filters.rest_framework.filterset import FilterSet from django_filters.rest_framework.filterset import FilterSet
from django_filters.utils import resolve_field from django_filters.utils import resolve_field
@ -347,6 +349,14 @@ class SaplApiViewSetConstrutor(ModelViewSet):
class Meta: class Meta:
model = _model model = _model
fields = '__all__' fields = '__all__'
filter_overrides = {
FileField: {
'filter_class': django_filters.CharFilter,
'extra': lambda f: {
'lookup_expr': 'exact',
},
},
}
@classmethod @classmethod
def filter_for_field(cls, f, name, lookup_expr='exact'): def filter_for_field(cls, f, name, lookup_expr='exact'):
@ -355,7 +365,7 @@ class SaplApiViewSetConstrutor(ModelViewSet):
f, lookup_type = resolve_field(f, lookup_expr) f, lookup_type = resolve_field(f, lookup_expr)
default = { default = {
'name': name, 'field_name': name,
'label': capfirst(f.verbose_name), 'label': capfirst(f.verbose_name),
'lookup_expr': lookup_expr 'lookup_expr': lookup_expr
} }

Loading…
Cancel
Save