postlike.py 959 B

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