from django.contrib import admin from .models import Category, PrimaryTag, SecondaryTag, Post # HJH:使用装饰器注册Category模型到Django管理后台 @admin.register(Category) class CategoryAdmin(admin.ModelAdmin): # HJH:定义在管理后台列表页面显示的字段 list_display = ['name', 'icon', 'order', 'description'] # HJH:定义可以在列表页面直接编辑的字段,无需进入编辑页面 list_editable = ['order', 'icon'] # HJH:定义可以通过搜索框搜索的字段 search_fields = ['name'] # HJH:使用装饰器注册PrimaryTag模型到Django管理后台 @admin.register(PrimaryTag) class PrimaryTagAdmin(admin.ModelAdmin): # HJH:定义在管理后台列表页面显示的字段 list_display = ['name', 'color'] # HJH:定义可以通过搜索框搜索的字段 search_fields = ['name'] # HJH:使用装饰器注册SecondaryTag模型到Django管理后台 @admin.register(SecondaryTag) class SecondaryTagAdmin(admin.ModelAdmin): # HJH:定义在管理后台列表页面显示的字段 list_display = ['name', 'tag_type', 'parent_tag'] # HJH:定义在列表页面右侧的过滤器,可以按这些字段快速筛选 list_filter = ['tag_type', 'parent_tag'] # HJH:定义可以通过搜索框搜索的字段 search_fields = ['name'] # HJH:使用装饰器注册Post模型到Django管理后台 @admin.register(Post) class PostAdmin(admin.ModelAdmin): # HJH:定义在管理后台列表页面显示的字段 list_display = ['title', 'category', 'author', 'status', 'views', 'created_time'] # HJH:定义在列表页面右侧的过滤器,可以按这些字段快速筛选 list_filter = ['category', 'status', 'created_time'] # HJH:定义可以通过搜索框搜索的字段,支持标题和内容搜索 search_fields = ['title', 'content'] # HJH:使用水平选择器显示多对多字段,方便用户选择多个标签 filter_horizontal = ['primary_tags', 'secondary_tags'] # HJH:定义在编辑页面中只读的字段,用户不能修改这些字段 readonly_fields = ['views', 'created_time', 'updated_time'] # HJH:定义字段分组显示,使编辑页面更加清晰有序 fieldsets = ( # HJH:基本信息分组,包含文章的核心信息 ('基本信息', { 'fields': ('title', 'content', 'excerpt', 'author', 'category', 'featured_image') }), # HJH:标签管理分组,包含一级和二级标签选择 ('标签管理', { 'fields': ('primary_tags', 'secondary_tags') }), # HJH:状态信息分组,包含文章状态和统计信息 ('状态信息', { 'fields': ('status', 'views', 'created_time', 'updated_time') }), )