【发布时间】:2018-04-23 12:32:45
【问题描述】:
我正在尝试在 django restFramework 中按 dateTime 过滤。 好像不行,因为不过滤,总是带来一样的结果。
模型.py
#Modelo Fechas que formara parte del modelo horario
class Fecha(models.Model):
fecha_inicio = models.DateTimeField(blank=True, default='')
fecha_fin = models.DateTimeField(blank=True, default='')
def __str__(self):
return self.fecha_inicio, self.fecha_fin
#Modelo Horario
class Horario(models.Model):
profesional = models.ForeignKey(Profesional, unique=True)
fechas = models.ManyToManyField(Fecha)
def __str__(self):
return self.profesional.user.username
查看.py
class FechaList(generics.ListAPIView):
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
serializer_class = FechaSerializer
queryset = Fecha.objects.all()
filter_class = HorarioFilter
网址.py
url(r'^horario/$', views.FechaList.as_view())
过滤器.py
class HorarioFilter(django_filters.FilterSet):
date_start = django_filters.DateTimeFilter(name="fecha_inicio")
class Meta:
model = Fecha
fields = {
'date_start': ['lte', 'gte', 'lt', 'gt'],
}
序列化器.py
class FechaSerializer(serializers.ModelSerializer):
class Meta:
model = Fecha
fields = ('fecha_inicio','fecha_fin')
请求:http://127.0.0.1:8000/horario/?date_start__gte=2015-6-28+00:00。不要做任何事情,不要过滤,但响应是“horario”对象的列表并给出 200 代码。
谢谢!!!! :)
【问题讨论】:
-
您可以尝试将views.py中的
filter_class=HorarioFilter替换为filter_backends = (HorarioFilter,) -
用你的解决方案我有这个错误:AttributeError at /horario/ 'HorarioFilter' object has no attribute 'filter_queryset'
-
这个问题你解决了吗?你能分享你的代码吗?
标签: python django filter django-rest-framework filtering