postedit.py 913 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from django.urls import reverse
  2. from rest_framework import serializers
  3. from ..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('misago:user', kwargs={
  29. 'slug': obj.editor_slug,
  30. 'pk': obj.editor_id,
  31. })
  32. else:
  33. return None