微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

关联对象在列表页添加

将关联对象显示在admin站点

一对一显示关联对象

  1. 如果是多对一或一对一,直接将子表的关联添加到list_display中

    在这里插入图片描述


    在这里插入图片描述


    在这里插入图片描述

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

    在这里插入图片描述


    在这里插入图片描述

多对一显示关联对象

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

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

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

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

在这里插入图片描述


在这里插入图片描述


@H_404_125@

编辑页调整

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. 设置图片尺寸

    在这里插入图片描述


    在这里插入图片描述


    -点击该图片即可进行页面跳转

    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐