写点什么

Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段

发布于: 2 小时前

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。


三、Django 后台完善

3.1 列表页展示内容修改

上一篇博客实现了列表数据展示,但是只显示了一列,并且列标题为英文,本篇博客首先解决该问题。



修改 blog 文件夹内部的 admin.py 文件,代码如下:


from django.contrib import adminfrom 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 StatReloaderPerforming system checks...
System check identified no issues (0 silenced).March 25, 2021 - 12:04:53
复制代码

3.2 列表自定义列实现

除了 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.title
def 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"]
复制代码


运行代码,效果图如下:


3.3 列表搜索实现

实现列表检索,需要增加的代码也非常简单,在 admin.py 中的类 BlogAdmin 中增加如下代码:


@admin.register(Blog)class BlogAdmin(admin.ModelAdmin):    # list_display  用于设置列表页展示哪些字段    list_display = ["title","content","creatr_time"]    # 增加搜索字段    search_fields = ["title"]
复制代码


3.4 只读字段

在 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"]
复制代码


3.5 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 属性的扩展;


上述属性和方法都会在后续的博客中进行学习,除了以上内容外,Django 还有更多的 QuerySet 技巧,这些都留给后面的文章吧。


博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。

发布于: 2 小时前阅读数: 2
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段