postlike.py 961 B

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