django - Unable to filter using a DateTimeFilter, all results returned instead -


i'm trying implement basic "starts before"/"starts after" filter 1 of models. unfortunately, filter never gets applied. doing wrong?

model

class shift(models.model):     ...snip...     start_time = models.datetimefield()     end_time = models.datetimefield()     ...snip...      class meta:         ordering = ('station', 'employee', 'confirmed', 'start_time',) 

filterset

import django_filters serverapp.models import shift   class shiftfilter(django_filters.filterset):     """     filter enable fetching shifts within date range     """     # specify url parameters can use filtering     start_before = django_filters.datetimefilter(         name="start_time",         lookup_type="lte")     start_after = django_filters.datetimefilter(         name="start_time",         lookup_type="gte")      class meta:         # specify mode we're filtering on         model = shift         # specify fields can filter (in case         # 2 above)         fields = ['start_before', 'start_after'] 

view

class shiftviewset(viewsets.modelviewset):     serializer_class = shiftserializer     filter_class = shiftfilter     ...snip... 

query (using httpie)

http http://127.0.0.1:8000/v1/shifts/?start_before=2015-04-23 http http://127.0.0.1:8000/v1/shifts/?start_after=2015-04-23 

records

id  start_time              end_time  13  2015-04-16 16:18:13     2015-04-17 16:18:13 14  2015-04-16 16:18:13     2015-04-17 16:18:13 15  2015-04-24 16:18:13     2015-04-24 17:18:13 

i expect start_before=2015-04-23 return 2 records dated 04/16/2015, , start_after=2015-04-23 return 1 record dated 04/24/2015. unfortunately, regardless of of 2 queries run, 3 records.

this seemed simple thing implement, how have screwed up?

if wanna use django_filters, please add filters.djangofilterbackend filter_backends.

for global :

settings.py

rest_framework = {     #...     # !!! it's list or tuple !!!     # of course, can add other backends     "default_filter_backends": (          'rest_framework.filters.djangofilterbackend',     )     #... } 

for specific view:

class shiftviewset(viewsets.modelviewset):     serializer_class = shiftserializer     filter_class = shiftfilter     filter_backends = (filters.djangofilterbackend,) 

Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -