如何在Django Admin站点注册django-simple-history生成的模型?
注册django-simple-history生成的历史模型到Django Admin
步骤说明:
- 导入历史模型
在项目的admin.py文件中,导入自动生成的HistoricalQuestion模型(它和你的Question模型在同一个models模块下):
from .models import Question, HistoricalQuestion
- (可选)自定义Admin类优化后台展示
历史模型默认包含history_id、history_date、history_user、history_change_reason等追踪字段,同时保留原Question模型的所有字段。你可以自定义ModelAdmin类,控制后台列表显示的字段、筛选条件等,让历史记录更易读:
from django.contrib import admin class HistoricalQuestionAdmin(admin.ModelAdmin): # 列表页显示的核心字段 list_display = ('id', 'question_text', 'history_date', 'history_user', 'history_change_reason') # 可筛选的维度 list_filter = ('history_date', 'history_user') # 可搜索的字段 search_fields = ('question_text',) # 历史记录为只读,禁止修改 readonly_fields = ('history_id', 'history_date', 'history_user', 'history_change_reason')
- 注册历史模型
和普通模型的注册方式一致,若使用了自定义Admin类,将其作为第二个参数传入:
# 注册原Question模型(若未注册) admin.site.register(Question) # 注册历史模型 admin.site.register(HistoricalQuestion, HistoricalQuestionAdmin)
完成以上操作后,你就能在Django Admin后台找到HistoricalQuestion的管理入口,查看所有Question模型的变更历史记录。
内容的提问来源于stack exchange,提问作者Shamsudeen McHalwai
相关产品推荐
相关产品推荐

