Django后台完美列表页显示内容修改上一篇博客实现了列表数据显示,但只显示一栏,栏目标题为英文。这篇文章Thisblogpost首先解决了这个问题。修改blog文件夹内的admin.py文件,代码如下:fromdjango.contribimportadminfromblog.modelsimportBlog#Registeryourmodelshere.@admin.register(Blog)classBlogAdmin(admin.ModelAdmin):#list_display用于设置列表页显示哪些字段list_display=["title","content","creatr_time"]list_display属性值对应的列表项都是models.py代码中的内容,它们必须正确匹配,否则会出现如下类似错误:NameError:name'creatr_time'isnotdefined执行保存代码,Django会自动加载,刷新浏览器查看效果。代码保存并重新加载输入数据,如下所示:D:\blog\admin.py已更改,正在重新加载。正在使用StatReloader执行系统检查来观察文件更改...系统检查未发现任何问题(0已沉默)。2021年3月25日-12:04:53List自定义列的实现除了models.py中定义的属性外,还可以在list_display中调用,也可以创建列供其使用。首先修改models.py中的内容:fromdjango.dbimportmodels#Createyourmodelshere.classBlog(models.Model):title=models.CharField("Title",max_length=100)content=models.TextField("Content")creatr_time=models.DateField("发布时间")def__str__(self):returnself.titledefintroduction(self):returnself.content[0:18]+"..."introduction.short_description="内容介绍》同步修改admin.py中的内容,在list_display中添加介绍:@admin.register(Blog)classBlogAdmin(admin.ModelAdmin):#list_display用于设置列表页显示哪些字段list_display=["title","introduction","content","creatr_time"]search_fields=["title"]运行代码,效果图如下:列表搜索实现列表检索,代码如下需要添加的也很简单。在admin.py类BlogAdmin中添加如下代码:@admin.register(Blog)classBlogAdmin(admin.ModelAdmin):#list_display用于设置列表页显示哪些字段list_display=["title","content","creatr_time"]#添加搜索字段search_fields=["title"]只读字段在Django中,有些字段可以设置为不可修改,只读。例如,我们将发布时间设置为只读字段。修改admin.py文件中的代码:@admin.register(Blog)classBlogAdmin(admin.ModelAdmin):#list_display用于设置列表页显示哪些字段list_display=["title","introduction","content","creatr_time"]search_fields=["title"]readonly_fields=["title"]ModelAdmin常用属性和方法本篇博客主要介绍BlogAdmin(admin.ModelAdmin)类,它继承自ModelAdmin。常用属性如下:list_display:列表显示字段过滤;search_fields:搜索字段过滤;readonly_fields:设置只读字段;排序:排序字段;fields:表单页面显示字段;exclude:表单页面不显示字段;list_filter:侧边栏过滤;list_editable:列表页可编辑字段设置;list_per_page:列表页显示的项目数;empty_value_display:空数据替换文本。常用方法如下:save_model():save;delete_model():删除;get_search_results():自定义搜索;get_list_display():list_display属性的扩展;get_readonly_fields():readonly_fields属性的扩展;get_search_fields():extensionofsearch_fields属性扩展;以上属性和方法在后续的博客中会学习到。除了以上内容,Django还有更多的QuerySet技巧,留给后面的文章。
