django restFrameworkでdateTimeでフィルタリングしようとしています。 フィルタリングされないため、同じ結果が得られるため、動作しないようです。Django rest framework dateTimeによるフィルタリング
Model.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
View.py
class FechaList(generics.ListAPIView):
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
serializer_class = FechaSerializer
queryset = Fecha.objects.all()
filter_class = HorarioFilter
Urls.py
url(r'^horario/$', views.FechaList.as_view())
Filters.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'],
}
Serializers.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コードを与えます。
ありがとうございます! :)あなたは、単にこのように、フィルタとして使用するフィールドにlt
、lte
、gt
、gte
を使用することができます
すると、あなたがfilter_backends =(HorarioFilter、) ''にviews.py 'filter_class = HorarioFilter'に置き換えるために試みることができるあなたのビューにこれを追加してみてください – Alexey
解決方法私はこのエラーがあります:AttributeError at/horario/ 'HorarioFilter'オブジェクトには 'filter_queryset'属性がありません – Isma9