AI智能
改变未来

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


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

滚雪球学 Python 第三轮

  • 三、Django 后台完善
  • 3.1 列表页展示内容修改
  • 3.2 列表自定义列实现
  • 3.3 列表搜索实现
  • 3.4 只读字段
  • 3.5 ModelAdmin 常用的属性和方法

三、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.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"]

运行代码,效果图如下:

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 技巧,这些都留给后面的文章吧。

相关阅读

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 游戏世界(更新中,目标文章数 50+,现在订阅,都是老粉)
  3. Python 爬虫小课,精彩 9 讲

今天是持续写作的第 119 / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞、评论、收藏。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段