django 简单历史不显示在管理员中

django simple history doesn't show in admin

我已按照 Django-simple-history 文档从管理页面显示历史记录,但不知怎的,管理页面似乎没有显示历史记录。我正在使用 Django 版本 3.1.2

这是我的管理员

from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin
from .models import Company

admin.site.register(Company, SimpleHistoryAdmin)

你可以这样试试:

假设您的 Company 模型中只有一个字段,即 name 字段,那么模型将如下所示:

models.py

from django.db import models

class Company(models.Model):
    name = models.CharField(max_length=200)

现在从 simple_history.models 导入 HistoricalRecords class 并在 Company 模型中添加历史字段。

from django.db import models
from simple_history.models import HistoricalRecords

class Company(models.Model):
    name = models.CharField(max_length=200)
    history = HistoricalRecords()

    def __str__(self):
        return self.name

现在从 simple_history.admin 中继承 SimpleHistoryAdmin class,在 admin.py 中创建一个名为 CompanyHistoryAdmin 的 class。见下面的代码:

admin.py

from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin
from .models import Company

# Register your models here.
class CompanyHistoryAdmin(SimpleHistoryAdmin):
    list_display = ['id', 'name']
    history_list_display = ['status']
    search_fields = ['name']

admin.site.register(Post, CompanyHistoryAdmin)

list_display 列表将以行和两列的形式显示记录,即管理部分中的 idname。 使用 search_fields 您可以通过名称或您提供的任何其他字段在管理部分中搜索记录。 history_list_display 将显示您想查看的任何记录的状态。 要查看记录的历史记录,请单击任何记录,然后单击右上角的历史记录按钮。

更多信息read the docs.