postedit.py 924 B

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