Ответ 1
Предполагая, что post.count
используется для измерения количества понравившихся сообщений, и вы на самом деле не собираетесь разделить целое число на метку времени в своем методе популярности, а затем попробуйте следующее:
используйте 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
однако я бы рекомендовал сделать это свойством в вашей модели
в вашей модели:
@property
def popularity(self):
likes = self.post.count
time = #hours since created
return likes / time if time > 0 else likes
затем используйте общий Field, чтобы ссылаться на него в вашем сериализаторе:
class ListingSerializer(serializers.ModelSerializer):
...
popularity = serializers.Field(source='popularity')