Django-simple-history Как отобразить связанные поля в панели администратора?

Я использую django-simple-history.Я храню историческую таблицу товара и цены, цена связана с товаром и добавлена в панель администратора. Я хочу отображать в админ панели в истории товара записи об историях связанных моделей (цена). Как я могу это сделать? И чтобы отображались измененные поля моя модель

class Product(models.Model):
    article = models.PositiveIntegerField()
    history = HistoricalRecords()

class Price(models.Model):
    prod = models.OneToOneField(
        Product,)
    price_supplier = models.FloatField()
    history = HistoricalRecords()

мой администратор

class PriceInline(admin.TabularInline):
    model = Price

class ProductAdmin(SimpleHistoryAdmin):
    inlines = [
        PriceInline,]

admin.site.register(Product, ProductAdmin)

введите описание изображения здесь введите описание изображения здесь

Я попытался настроить его через history_view() и get_history_queryset() на получение объектов другой модели и я их получил, но я не понимаю как их внедрить в рендер, чтобы отражались и изменения в модели товара и изменения в модели цены, и при этом изменяемые поля соответствовали своим моделям. или есть другой метод для достижения этого результата

Я нашел решение, но оно немного нестандартное. Поскольку мы не будем отображать цену приложения отдельно в админ-панели (она участвует только в инлайне продукта), мы можем изменить функцию history_view() из django-simple-history. Я добавлю в пример модель изображения, чтобы показать, как использовать этот подход с полями один-к-одному и один-ко-многим. В то же время я отключил возможность возвращать старое значение из истории и для шаблона изменил то, что отображалось в первом столбце в виде ссылки, потому что ссылки нужно настраивать отдельно. Теперь в первом столбце у меня просто имена типов полей.

Теперь мой код выглядит следующим образом:

model.py

    class Product(models.Model):
        article = models.PositiveIntegerField()
        history = HistoricalRecords()

    class Price(models.Model):
        prod = models.OneToOneField(Product,)
        price_supplier = models.FloatField()
        history = HistoricalRecords()

    class ProductImage(models.Model):
        product = models.ForeignKey(Product,)
        photo = models.ImageField("Изображение", upload_to=get_file_path_add)
        history = HistoricalRecords()

admin.py

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