postlike.py 892 B

1234567891011121314151617181920212223242526272829303132333435363738
  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 = ('id', 'liked_on', 'liker_id', 'username', 'url', )
  14. def get_liker_id(self, obj):
  15. return obj['liker_id']
  16. def get_username(self, obj):
  17. return obj['liker_name']
  18. def get_url(self, obj):
  19. if obj['liker_id']:
  20. return reverse(
  21. 'misago:user', kwargs={
  22. 'slug': obj['liker_slug'],
  23. 'pk': obj['liker_id'],
  24. }
  25. )
  26. else:
  27. return None