You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DjangoBlog/blog/admin.py

59 lines
2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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