assuming post.count
is being used to measure the number of likes on a post and you don't actually intend to divide an integer by a timestamp in your popularity method, then try this:
use a SerializerMethodField
likescount = serializers.SerializerMethodField('get_popularity')
def popularity(self, obj):
likes = obj.post.count
time = #hours since created
return likes / time if time > 0 else likes
however I would recommend making this a property in your model
in your model:
@property
def popularity(self):
likes = self.post.count
time = #hours since created
return likes / time if time > 0 else likes
then use a generic Field to reference it in your serializer:
class ListingSerializer(serializers.ModelSerializer):
...
popularity = serializers.Field(source='popularity')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…