Django Model Utils
django-model-utils предоставляет дополнительные возможности для Django моделей.
Установка
TimeStampedModel
StatusModel для статусов
FieldTracker для отслеживания изменений
1from model_utils import FieldTracker
2
3class Article(models.Model):
4 title = models.CharField(max_length=200)
5 content = models.TextField()
6 tracker = FieldTracker(fields=['title', 'content'])
7
8 def save(self, *args, **kwargs):
9 if self.tracker.has_changed('title'):
10 print(f'Заголовок изменился на: {self.title}')
11 super().save(*args, **kwargs)
FAQ
Q: Как отслеживать изменения полей?
A: Используй FieldTracker для мониторинга изменений.
Q: Можно ли кастомизировать Choices?
A: Да, используй дополнительные параметры в Choices.