Получить все изменения любой зарегистрированной модели одного пользователя django-simple-history
# settings.py
INSTALLED_APPS = [
# ...
'simple_history',
# ...
]
MIDDLEWARE = [
# ...
'simple_history.middleware.HistoryRequestMiddleware',
# ...
]
Модели:
from django.db import models
from apps.companies.models import Company
from simple_history.models import HistoricalRecords
# Create your models here.
class User(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=20)
history = HistoricalRecords()
class Contact(TimeStamp):
name = models.CharField(max_length=100, verbose_name='Person Name')
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
phone_number = models.CharField(max_length=100, verbose_name='Personal Number', null=True, blank=True)
email = models.EmailField(null=True, blank=True, verbose_name='Personal Email')
designation = models.CharField(max_length=100)
history = HistoricalRecords()
def __str__(self):
return self.name
user = User.objects.first()
есть ли способ получить все изменения любой модели по user
Ваш вопрос кажется похожим на эту проблему в репозитории django-simple-history
: https://github.com/jazzband/django-simple-history/issues/684
Вам придется запрашивать каждую историческую модель, поскольку все они находятся в отдельных таблицах. Вы можете создать способ автоматического определения того, какие модели являются историческими и получить их.