Django 后台完善
列表页展示内容修改
在上一篇博客实现了列表数据展示,但是只显示了一列,并且列标题为英文,本篇博客首先解决该问题。
文章图片
修改 blog
文件夹内部的 admin.py
文件,代码如下:
from django.contrib import admin
from blog.models import Blog# Register your models here.
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
# list_display用于设置列表页展示哪些字段
list_display = ["title","content","creatr_time"]
list_display
属性值对应的列表项,都是 models.py
代码中的内容,要对应好,否则会出现下述类似错误:NameError: name 'creatr_time' is not defined
执行保存代码,Django 会自动进行加载,刷新浏览器即可看到效果。
文章图片
代码保存即重新加载输入数据如下:
D:\blog\admin.py changed, reloading.
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
March 25, 2021 - 12:04:53
列表自定义列实现 除了
models.py
中定义的属性,可以在 list_display
进行调用,还可以自行创建列供其使用。 先修改
models.py
中的内容:from django.db import models# Create your models here.
class Blog(models.Model):
title = models.CharField("标题", max_length=100)
content = models.TextField("内容")
creatr_time = models.DateField("发布时间")def __str__(self):
return self.titledef introduction(self):
return self.content[0:18]+"..."introduction.short_description = "内容简介"
同步修改
admin.py
中的内容,在 list_display
中新增 introduction
:@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
# list_display用于设置列表页展示哪些字段
list_display = ["title","introduction","content","creatr_time"]
search_fields = ["title"]
运行代码,效果图如下:
文章图片
列表搜索实现 实现列表检索,需要增加的代码也非常简单,在
admin.py
中的类 BlogAdmin
中增加如下代码:@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
# list_display用于设置列表页展示哪些字段
list_display = ["title","content","creatr_time"]
# 增加搜索字段
search_fields = ["title"]
文章图片
只读字段 【Django 做个小后台,细节在完善一点点【附源码】】在 Django 中,可以设置某些字段不被修改,只读。例如,我们将发布时间设置为只读字段。
修改
admin.py
文件中的代码:@admin.register(Blog)
class BlogAdmin(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
:设置只读字段;ordering
:排序字段;fields
:表单页显示字段;exclude
:表单页不显示字段;list_filter
:边栏筛选;list_editable
:列表页可编辑字段设置;list_per_page
:列表页显示条数;empty_value_display
:空数据替换文字。
save_model()
:保存;delete_model()
:删除;get_search_results()
:自定义检索;get_list_display()
:对list_display
属性的扩展;get_readonly_fields()
:对readonly_fields
属性的扩展;get_search_fields()
:对search_fields
属性的扩展;
推荐阅读
- [抬抬小手学Python]-Python基础
- 实战|Python轻松实现地图可视化(附详细源码)
- 手写一个 Python "病毒"
- 保姆级教学,手把手教你用Python爬虫(附详细源码)
- 用Python制作一个B站视频下载小工具
- 用Python分析广州房地产市场
- 【抬抬小手学Python】yolov3代码和模型结构图详细注解【图文】
- 【小手一抬学Python】Socket套接字编程Python
- #抬抬小手学Python# Python Poetry 进行依赖管理【图文】
- #小手一抬学Python# Python字典已经掌握了【附源码】