postedit.py 885 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 = ('id', 'edited_on', 'editor_name', 'editor_slug', 'diff', 'url', )
  13. def get_diff(self, obj):
  14. return obj.get_diff()
  15. def get_url(self, obj):
  16. return {
  17. 'editor': self.get_editor_url(obj),
  18. }
  19. def get_editor_url(self, obj):
  20. if obj.editor_id:
  21. return reverse(
  22. 'misago:user', kwargs={
  23. 'slug': obj.editor_slug,
  24. 'pk': obj.editor_id,
  25. }
  26. )
  27. else:
  28. return None