postedit.py 792 B

123456789101112131415161718192021222324252627282930
  1. from django.urls import reverse
  2. from rest_framework import serializers
  3. from misago.threads.models import PostEdit
  4. __all__ = ["PostEditSerializer"]
  5. class PostEditSerializer(serializers.ModelSerializer):
  6. diff = serializers.SerializerMethodField()
  7. url = serializers.SerializerMethodField()
  8. class Meta:
  9. model = PostEdit
  10. fields = ["id", "edited_on", "editor_name", "editor_slug", "diff", "url"]
  11. def get_diff(self, obj):
  12. return obj.get_diff()
  13. def get_url(self, obj):
  14. return {"editor": self.get_editor_url(obj)}
  15. def get_editor_url(self, obj):
  16. if obj.editor_id:
  17. return reverse(
  18. "misago:user", kwargs={"slug": obj.editor_slug, "pk": obj.editor_id}
  19. )
  20. else:
  21. return None