from rest_framework import serializers from django.urls import reverse from misago.threads.models import PostEdit __all__ = ["PostEditSerializer"] class PostEditSerializer(serializers.ModelSerializer): diff = serializers.SerializerMethodField() url = serializers.SerializerMethodField() class Meta: model = PostEdit fields = ["id", "edited_on", "editor_name", "editor_slug", "diff", "url"] def get_diff(self, obj): return obj.get_diff() def get_url(self, obj): return {"editor": self.get_editor_url(obj)} def get_editor_url(self, obj): if obj.editor_id: return reverse( "misago:user", kwargs={"slug": obj.editor_slug, "pk": obj.editor_id} ) else: return None