我正在使用Django Rest框架
在queryset中,我试图根据对象的日期是否大于或等于今天来过滤对象。像这样:
class DateViewSet(viewsets.ModelViewSet):
"""
API Endpoint to retrieve all dates after today.
"""
serializer_class = DateSerializer
today = datetime.date.today()
queryset = EventDate.objects.filter(end_date__gte=today)
但这最后也显示了过去的日期
我的序列化程序:
class DateSerializer(serializers.ModelSerializer):
class Meta:
model = EventDate
fields = ('start_date', 'end_date')
然后我将其传递给事件序列化程序:
class EventSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.StringRelatedField()
dates = DateSerializer(many=True, read_only=True)
class Meta:
model = Event
fields = '__all__'
extra_kwargs = {
'url': {'lookup_field': 'slug'},
}
我的目标是,当API返回所有事件时,它不应该返回过去的所有日期
我做错了什么
问题是
today = datetime.date.today()
将在构造类时进行计算,而不是每次需要获取这些属性时进行计算您可以重写
get_queryset
方法,以获取请求,并使用发出请求的日期进行查询:相关问题 更多 >
编程相关推荐