Есть ли способ отобразить исторические записи для всех экземпляров модели с помощью django-simple-history?

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

Например, у меня есть модель

class TestModel(models.Model):
    title = models.CharField('title', max_length=100)
    history = HistoricalRecords()

и admin

class TestModelAdmin(SimpleHistoryAdmin):
    list_display = ['title']
admin.site.register(TestModel, TestModelAdmin)

Теперь я могу видеть историю каждого экземпляра.

Не уверен, как я могу решить эту проблему. Может быть, есть способ создать пользовательские представления в админке сайта (без модели), или, может быть, я должен создать другую модель?

Как лучше всего отобразить все записи истории (для всех экземпляров) в панели администратора?

Используйте through модель TestModel.history в качестве модели администратора:

class HistoricalTestModelAdmin(admin.ModelAdmin):
    list_display = ['title', 'history_object']


admin.site.register(TestModel.history.model, HistoricalTestModelAdmin)

Ссылка .history_object относится к объекту, для которого мы отслеживаем историю. Таким образом, в данном случае мы можем, например, найти исторические названия ваших TestModel объектов.

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