postlike.py 921 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('misago:user', kwargs={
  27. 'slug': obj['liker_slug'],
  28. 'pk': obj['liker_id'],
  29. })
  30. else:
  31. return None