Получить все изменения любой зарегистрированной модели одного пользователя 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

Вам придется запрашивать каждую историческую модель, поскольку все они находятся в отдельных таблицах. Вы можете создать способ автоматического определения того, какие модели являются историческими и получить их.

Вернуться на верх