栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)

文章目录
  • 关联对象在列表页中添加
    • 将关联对象显示在admin站点中
      • 一对一显示关联对象
      • 多对一显示关联对象
  • 编辑页调整
    • fields设置编辑页
    • 分组显示:fieldsets
    • 关联对象:Tabularlnline、Stackedlnline
      • StackedInline:设置以块的形式编辑
      • TabularInline:设置以表格的形式编辑
  • 图片设置

关联对象在列表页中添加 将关联对象显示在admin站点中 一对一显示关联对象
  1. 如果是多对一或一对一,直接将子表的关联添加到list_display中


  2. 从主表添加时,也是同ORM一样直接以模型类的小写作为字段名进行添加

多对一显示关联对象
  1. '多’的一方显示’一’的一方





  1. '一’的一方显示’多’的一方

在Wife_1中添加show_description方法,将此方法添加到字段中



编辑页调整 fields设置编辑页


注意在models中不允许为空的字段必须添加到编辑页要编辑的字段中

  1. null:允许当前字段在数据库中可为空值

也就是当设置字段null=True时,在admin编辑页中添加时,该字段为必填项。若想将此字段变为选填项可添加blank=True。

  1. 允许当前字段在admin站点的编辑中可以空


分组显示:fieldsets
fieldsets = (
('组1标题', {'fields':['字段1', '字段2']}),
('组2标题', {'fields':['字段3', '字段4'], 
'classes':('collapse',)}) # 设置是否折叠显示
)

注意:fieldsets和fields不能同时存在,二者选其一使用




关联对象:Tabularlnline、Stackedlnline

在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。

  • 类型lnlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑
  • 子类Tabularlnline:以表格的形式嵌入。
  • 子类Stackedlnline:以块的形式嵌入。
StackedInline:设置以块的形式编辑

导入:from django.contrib.admin import StackedInline


TabularInline:设置以表格的形式编辑



图片设置
  1. 添加图片字段





2. 添加一个在admin中显示照片的方法


3. 取消图片的转义

需要导入的模块:
from django.utils.safestring import mark_safe

此时可以在admin中看到一个损坏的图片,这是因为系统没有找到该图片的路径,所以我们需要配置一个media媒体文件,用来存放图片。

  1. media媒体文件的配置
    -在项目中创建一个存放媒体文件的文件夹:media,并在静态文件中进行路径的配置

    - 在根路由中配置media静态文件的路由

    - 在模型类中添加图片应上传到的地方

upload_to 表示将上传的文件放在哪一个地方,找的是meida而不是static


- 重新上传文件后,即可看见图片,此时图片过大,我们需要进行图片尺寸的设置

  1. 设置图片尺寸


    -点击该图片即可进行页面跳转
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号