postlike.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from rest_framework import serializers
  2. from django.urls import reverse
  3. from misago.threads.models import PostLike
  4. class PostLikeSerializer(serializers.ModelSerializer):
  5. avatars = serializers.SerializerMethodField()
  6. liker_id = serializers.SerializerMethodField()
  7. username = serializers.SerializerMethodField()
  8. url = serializers.SerializerMethodField()
  9. class Meta:
  10. model = PostLike
  11. fields = [
  12. 'id',
  13. 'avatars',
  14. 'liked_on',
  15. 'liker_id',
  16. 'username',
  17. 'url',
  18. ]
  19. def get_liker_id(self, obj):
  20. return obj['liker_id']
  21. def get_username(self, obj):
  22. return obj['liker_name']
  23. def get_avatars(self, obj):
  24. return obj.get('liker__avatars')
  25. def get_url(self, obj):
  26. if obj['liker_id']:
  27. return reverse(
  28. 'misago:user', kwargs={
  29. 'slug': obj['liker_slug'],
  30. 'pk': obj['liker_id'],
  31. }
  32. )
  33. else:
  34. return None