|
|
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')
|
|
|
}),
|
|
|
) |