postedit.py 966 B

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