import difflib from django.conf import settings from django.db import models from django.utils import timezone class PostEdit(models.Model): category = models.ForeignKey('misago_categories.Category') thread = models.ForeignKey('misago_threads.Thread') post = models.ForeignKey('misago_threads.Post', related_name='edits_record') edited_on = models.DateTimeField(default=timezone.now) editor = models.ForeignKey( settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.SET_NULL, ) editor_name = models.CharField(max_length=255) editor_slug = models.CharField(max_length=255) editor_ip = models.GenericIPAddressField() edited_from = models.TextField() edited_to = models.TextField() class Meta: ordering = ['-id'] def get_diff(self): return difflib.ndiff(self.edited_from.splitlines(), self.edited_to.splitlines()),