在信息列表窗口,如果数据筛选条件不够的话,可以添加,有日期、过滤器、搜索可以选择;如果功能不够的话,可以进行自定义;如果想改变数据查询内容的话,可以继承父类的查询方法;还有模板也是可以更换的,好像只有想不到没有做不到似的。
当然,添加、修改、删除的方法也是可以通过继承父类进行相应的调整的。
from django.contrib import adminfrom .models import Post@admin.register(Post)class PostAdmin(admin.ModelAdmin): # 信息列表里显示的内容 list_display = ('name', 'createDate', 'color_state') # ------通过日期、过滤器和搜索的方式,增加筛选条件------ # 通过日期进行数据 date_hierarchy = 'createDate' # 通过过滤器进行数据筛选 list_filter = ('name',) # 增加搜索条件 search_fields = ('name',) # ------在上下方添加动作按钮----- actions_on_top = True actions_on_bottom = True # 去掉执行按钮后面的概述 # actions_selection_counter = False # ----自定义功能----- actions = ['make_active'] def make_active(self, queryset): queryset.update(status='active') make_active.short_description = "全部启动" # ----重写查询方法,进行查询调整----- def get_queryset(self, request): queryset = super().get_queryset(request) return queryset # 指定什么账号可以进行删除操作 def get_actions(self, request): actions = super(PostAdmin, self).get_actions(request) if request.user.username != 'admin': if 'delete_selected' in actions: del actions['delete_selected'] return actions # 添加或修改里显示的内容项 fields = ('name',) """ # 重写保存或修改方法 def save_model(self, request, obj, form, change): # if change: # 更改的时候 obj.post = request.post obj.save() # 重写删除方法 def delete_model(self, request, obj): # 更换模板 def changelist_view(self, request, extra_context=None): """
调整后的效果图,请自行尝试,多尝试,多动手才能提高技能,积小成大。