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

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

关联对象在列表页中添加


将关联对象显示在admin站点中


一对一显示关联对象


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


6419a365099142da9571da153c0a7a07.png

e5ed474aceb8491f8e2f86699ab6d837.png

4712d8750d8c4b50afd8223b7e98ffaa.png


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

d95cf85fc77e49f89dba99ceae94d3c3.png


b4c0c389898c49038dae1002eb685660.png


多对一显示关联对象


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


0c24512adf3545a38780cd0e58e4a866.png


4f35c97b84864286b7533f134f0247e3.png

3db1843ef5474641a90e473eb754c87e.png


e698c0304c3849b3a831be7a31cd109c.png


c2e510a32aba4bf59f32374689e4b6b2.png


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

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

0f94a034570945239bbed6d0712f2f96.png

3454b33b188949e68e233f900f8c803d.png

ed093160bb554ad1bd8872389052dc93.png



编辑页调整


fields设置编辑页


f205de8e208c40a7bdbb57ef182e1f96.png

eee07bc2d9014489ade93b312c2dff3c.png


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


302ab3c7e03043c89d6e64e3c9f69ef4.png


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

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



6beed006dc214977ad7fc08b88e94962.png


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

81bee9b3dbc14b7392a8479d806aedb8.png


30ee7668ac304403ad5dba4eb427ce1c.png



分组显示:fieldsets


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


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

86db5045a22c42188bb39fb582d8e5d7.png

ff1f5d057e114465bdf474ed6074ed8d.png

0fabf941295a40508c4b327eab13b95c.png

dee484348434431a985fb064c0d65c80.png



关联对象:Tabularlnline、Stackedlnline



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


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



StackedInline:设置以块的形式编辑


导入:from django.contrib.admin import StackedInline


a4d2d6abc74d46a3a73494fe04b4dba9.png

920c344d09f54c40a34c197cc27f42ce.png


b01b1d730fe741de9a781ed398378bbe.png



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


4212fee1c77749acb6abeaa50e7154a6.pngc102bcc89ab349648756a7354c1f9139.png


0c52c1780b104a16bbce17347e40a13c.png


相关文章
|
1月前
|
前端开发 数据库 Python
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
|
1月前
|
数据管理 数据库 数据安全/隐私保护
Django——Auth模块以及admin站点
Django——Auth模块以及admin站点
|
1月前
|
安全 API 数据安全/隐私保护
在django3查看项目和编辑应用权限
【6月更文挑战第5天】本文介绍在Django REST Framework中,权限管理对于Web API的安全至关重要。总的来说,应实施严格的项目级别权限,并按需调整视图级别的权限策略,利用DRF的内置权限系统增强安全性。
34 2
|
1月前
|
Python
初识Django,以及路由设置
初识Django,以及路由设置
|
2月前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
2月前
|
存储 数据库 数据安全/隐私保护
基于Django的Python应用——学习笔记
基于Django的Python应用——学习笔记
|
2月前
|
Python
百度搜索:蓝易云【Django自带的Admin后台中如何获取当前登录用户】
在上面的代码中,`@staff_member_required`装饰器确保只有管理员可以访问 `my_custom_view`视图,而 `@login_required`装饰器确保只有登录的用户可以访问该视图。然后,可以使用 `request.user.username`获取当前登录用户的用户名,并将其传递到模板中进行显示或其他操作。
39 3
|
7月前
|
存储 JavaScript 前端开发
js django 前后端图片传输两种办法
js django 前后端图片传输两种办法
101 1
js django 前后端图片传输两种办法
|
2月前
|
人工智能 开发工具 数据库
Django实践-03模型-02基于admin管理表
Django实践-03模型-02基于admin管理表
Django实践-03模型-02基于admin管理表
|
7月前
|
存储 前端开发 API
django 不使用imagefield 实现多图上传(大容量图片2.5MB以上)
因为某些原因,不想使用imagefield字段,而是将上传的所有图片地址统一返回前端 之前在 如何使用pathlib优雅地抛弃open写入 更新时间:2021-04-29 09:00:04 一文中提出了这样的方法,但是今天前端的朋友给我反馈
26 0