【发布时间】:2022-07-19 20:07:35
【问题描述】:
序列化器
class MyModelSerializer(serailizers.ModelSerializer):
hour = serializers.SerializerMethodField()
def get_hour(self, obj):
created_at = obj.created_at # datetime
now = datetime.now()
return (now - datetime).total_seconds() // 3600
class Meta:
model = MyModel
fields = "__all__"
API
在api中会有一个过滤参数hr。如果它提供了例如 4,那么我应该只返回具有 4 小时的匹配条目(在上面的序列化程序中计算)。
我该怎么做?
@api_view(["GET"])
def get_list(request):
qs = MyModel.objects.all()
hr = request.GET.get("hr")
if hr:
qs = qs.filter(created_at__hour=hr) # get_hour value = hr this should be the comparison
return MyModelSerializer(qs, many=True).data
【问题讨论】:
标签: python django django-rest-framework