首页 > 解决方案 > 已解决 Django 历史记录未显示在管理员中

问题描述

我正在为我的一些模型创造历史记录。它可以工作,该表已创建并按预期运行,但是,我无法让它出现在我的管理表中。

模型.py

class Test(models.Model):
    ...
    history = HistoricalRecords()

在 admin.py 我有一个 TestAdmin(admin.ModelAdmin) 例如:

class TestAdmin(admin.ModelAdmin):
    list_display = ('test', 'id')
    list_filter = ['test']


admin.site.register(Test, TestAdmin) #1
# admin.site.register(Test, SimpleHistoryAdmin) #2

当我使用 #1 行时,除了没有历史表之外,我的一切都运行良好。当我使用 #2 行时,我也没有得到它,我的格式也不再有效。当我设置两者时,我得到一个错误django.contrib.admin.sites.AlreadyRegistered: The model Test is already registered with 'test.TestAdmin'(这是有道理的)。

为了让历史记录表出现在我的管理员中,我缺少什么?

谢谢你的时间。

标签: djangohistorical-db

解决方案


您应该将文档的管理历史列表视图部分的显示自定义列中指定的子类化:SimpleHistoryAdmin

class TestAdmin(SimpleHistoryAdmin):
    list_display = ('test', 'id')
    history_list_display = ['test']
    list_filter = ['test']

admin.site.register(Test, TestAdmin)

推荐阅读