odoo14学习----x2many操作与图片设置继承image.mixin
三种方式实现数据更新
- 一,如上所述
- 二,通过对数据集调用update({'key':value,'key1':value1..})更新数据集
- 三,调用write函数,与update类似,传递字典。
| 元组 | 影响 |
| (0, 0, dict_val) | 将新创建的记录对象关联到主记录上 |
| (1, id, dict_val) | 更新特定(ID)关联记录的值 |
| (2, id) | 移除ID的记录,并从数据库删除ID的记录 |
| (3, id) | 取消记录ID的关联,但并不从数据库删除记录 |
| (4, id) | 添加关联新的已经存在的纪录 |
| (5, ) | 移除所有的记录,类似于对每一个ID调用(3, id) |
| (6, 0, id_list) | 这将在正在更新的记录和现有记录之间创建一个关系,现有记录的id在名为id list的Python列表中。 |
生成不同尺寸的图片
大图片对任何网站来说都是麻烦的。它们增加了网页的大小,结果使网页变慢。这就导致了不好的SEO排名和访问者流失。本节,我们将探索如何创建不同大小的图像;通过使用正确的图像,您可以减少网页大小和改善页面加载时间。
步骤
您将需要继承image.mixin。如下:
class LibraryBook(models.Model):
_name = 'library.book'
_description = 'Library Book'
_inherit = ['image.mixin']
mixin模型将自动添加5个字段,用于存储不同大小的图片。
步骤
image.mixin实例将自动向模型添加5个新的二进制字段。每个字段存储具有不同分辨率的图像。以下是这些领域及其解决方案的列表:
- image_1920: 1,920x1,920
- image_1024: 1,024x1,024
- image_512: 512x1,512
- image_256: 256x256
- image_128: 128x128
在这里给出的所有字段中,只有image_1920是可编辑的。其他图像字段是只读的,当您更改image_1920字段时,它们会自动更新。因此,在模型的后端表单视图中,您需要使用image_1920字段来允许用户上传图像。但这样做,我们在表单视图中加载大image_1920图像。但是,有一种方法可以提高性能,即在form视图中使用image_1920图像,但是显示较小的图像。例如,我们可以使用image_1920字段,但显示image_128字段。要做到这一点,你可以使用以下语法:
<field name="image_1920" widget="image" options="{'preview_image': 'image_128'}" />
将图像保存到字段后,Odoo会自动调整图像的大小并将其存储到相应的字段中。form视图将显示转换后的image_128,因为我们使用它作为preview_image。
小贴士
image.mixin模型是AbstractModel,所以它的表不在数据库中。为了使用它,您需要在模型中继承它。
image.mixin,您可以存储的图像的最大分辨率为1920 × 1920。如果您保存的图像分辨率高于1920 x1920, Odoo会将其降低为1920 x1920。在这样做的同时,Odoo还将保留图像的分辨率,避免任何失真。例如,如果您上传的图像分辨率为2,400x1,600,那么image_1920字段的分辨率将为1,920x1,280。
更多
image.mixin,你可以获得特定分辨率的图像,但是如果你想使用另一种分辨率的图像呢?为此,您可以使用二进制包装字段图像,如下面的示例所示:
image_1500 = fields.Image("Image 1500", max_width=1500, max_ height=1500)
这将创建一个新的image_1500字段,存储图像将把它的分辨率调整为1500 x1500。注意,这不是image.mixin的一部分。它只是将图像缩小为1,500x1,500,因此需要在form视图中添加该字段;编辑它不会改变image.mixin中的其他图像字段。如果您想将其与现有的图像链接。在字段定义中添加related="image_1920"属性。
odoo14学习----x2many操作与图片设置继承image.mixin的更多相关文章
- JAVA GUI学习 - 窗体背景图片设置方法:重写paintComponent(Graphics g)方法
public class BackgroundImage extends JFrame { public BackgroundImage() { this.setTitle("窗体背景图片设 ...
- Javascript学习6 - 类、对象、继承
原文:Javascript学习6 - 类.对象.继承 Javasciprt并不像C++一样支持真正的类,也不是用class关键字来定义类.Javascript定义类也是使用function关键字来完成 ...
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- iOS学习笔记之异步图片下载
写在前面 在iOS开发中,无论是在UITableView还是在UICollectionView中,通过网络获取图片设置到cell上是较为常见的需求.尽管有很多现存的第三方库可以将下载和缓存功能都封装好 ...
- scrapy爬虫学习系列五:图片的抓取和下载
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- 安装Linux系统,学习Linux操作基础
20189230杨静怡 2018-2019-2 <移动平台开发实践>第1周学习总结 安装Linux系统内容总结 一.学习"基于VirtualBox虚拟机安装Ubuntu图文教程& ...
- (转)Android学习-使用Async-Http实现图片压缩并上传功能
(转)Android学习-使用Async-Http实现图片压缩并上传功能 文章转载自:作者:RyaneLee链接:http://www.jianshu.com/p/940fc7ba39e1 让我头疼一 ...
- 4-python学习——数据操作
4-python学习--数据操作 参考python类型转换.数值操作(收藏) Python基本运算符 数据类型转换: 有时候,可能需要执行的内置类型之间的转换.类型之间的转换,只需使用类名作为函数. ...
- iOS开发中的错误整理,启动图片设置了没有效果;单独创建xib需要注意的事项;图片取消系统渲染的快捷方式
一.启动图片设置了没有效果 解决方案:缓存啊!卸了程序重新安装吧!!!!! 二.单独创建xib需要注意的事项 三.图片取消系统渲染的快捷方式
随机推荐
- 权限管理(基本权限、附加权限、ACL权限)
基本权限 •访问方式(权限) 读取:允许查看内容-read r 写入:允许修改内容-write w 可执行:允许运行和切换-execute x 对于文本文件 r: cat head ...
- Django基础之auth模块
内容概要 用户认证模块auth auth模块补充 auth_user表扩展字段 内容详细 auth模块 主要是用来做用户相关的功能 注册 登录 验证 修改密码 注销 访问admin需要管理员账号 ...
- 「10.28」Dove 打扑克(链表)·Cicada 与排序(概率)·Cicada 拿衣服(各种数据结构)
A. Dove 打扑克 考场思考半天线段树树状数组,没有什么想法 打完暴力后突然想到此题用链表实现会很快. 因为只有$n$堆,所以设最多有$x$个不同的堆数,那么$x\times (x-1)/2==n ...
- 安卓开发(3)—1— Activity
安卓开发(3)-1- Activity 3.1 Activity是什么: 在前面安卓概述中有提到,Activity是Android开发中的四大组件,所有在app里可以看到的东西都是Activity里面 ...
- Unity 添加,修改默认创建脚本模板
Unity 默认创建的脚本可以添加也可以修改,不需要修改Editor. 一.找到模板目录 \Editor\Data\Resources\ScriptTemplates 二.如果要修改模板,直接打开修改 ...
- 敢为人先,从阿里巴巴云原生团队实践Dapr案例,看分布式应用运行时前景
背景 Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2 ...
- centos 关闭SELINUX并重启系统
关闭SELINUX [root@bogon ~]# vim /etc/sysconfig/selinux ... SELINUX=disabled ... 执行过程: 重启系统 [root@bogo ...
- promise的基本使用
// 什么情况下适用promise? // 一般情况下是有异步请求操作时,使用promise对这个异步操作进行封装 // new ->构造函数(1.保存了一些状态信息 2.执行传入的函数) // ...
- SpringBoot | 1.4 数据库事务处理
前言 前面讲解了Sring的AOP,可以知道它是用来抽取公共代码,增强方法的.而在JDBC操作数据库进行数据处理时,有很多重复的公共代码:事务的提交与回滚跟AOP的约定流程很相似.因此,Spring数 ...
- Springboot:单元测试日志打印@Slf4j 注解的使用方法
当自己写日志的时候,肯定需要: private final Logger logger = LoggerFactory.getLogger(LoggerTest.class); 每次写新的类,就需要重 ...