postlike.py 906 B

123456789101112131415161718192021222324252627282930313233
  1. from django.urls import reverse
  2. from rest_framework import serializers
  3. from ..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. )