serializer:
class MyModelSerializer(serailizers.ModelSerializer):
hrs = serializers.SerializerMethodField()
def get_hrs(self, obj):
created_at = obj.created_at
now = datetime.now()
return (now - datetime).total_seconds() // 3600
class Meta:
model = MyModel
fields = "__all__"
Now in the api there will be a filter parameter hr what it need to do is filter the queryset matching this above calculated hr.
For example:
@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)
return MyModelSerializer(qs, many=True).data
I want to get matching result if paramter hr=get_hrs() value.
How can I filter like this from serializer fields?