精华内容
下载资源
问答
  • ODOO14 - 新增自定义字段
    千次阅读
    2020-10-19 19:28:06

    开发环境ODOO 14 + UBUNTU 20.04,

    ODOO14中, 如果要在某个表中增加字段, 以联系人表为例,主要需要如下两步:

    一, 在模型中添加字段。

    首先点击最左上菜单, 进入设置页面, 拉到最下, 点“激活开发模式”

    然后导航到要更改的视图页面, 点左上的小甲虫 - 编辑视图:表单, 从弹出页面中可以看到当前页的视图名称(res.partner.form)和数据模型名称(res.partner), 关闭。 然后进入网站设置面面, 点左上菜单 “技术 - 数据库结构 - 模型”, 在出现的列表中找到对应模型名称“联系人(res.partner)”,点开,再点击左方的“编辑”按纽,然后在现有字段列表的最下方会出现“添加明细行”字样, 点击打开“创建字段”页面, 输入你的字段名比如“x_wechat", 注意:这里不要更改默认的开头“x_”, 不要用大写字母,选择类型“char 或文本均可” , 勾选CHECKBOX "可翻译", 保存并关闭, 然后在字段列表翻到最后一页就可以看到你加入的字段了。

     

    二, 在视图中显示出来。 

     同样是在设置页面, 点左上菜单 “技术 - 用户界面 - 视图”, 会出现视图列表,找到联系人视图(res.partner.form), 点开, 会显示一个XML文件的结构,此处点左边的“编辑”, 然后在XML文件中找一个你想要的位置显示新增的字段, 用field表示, 通常为:

    <field name="x_wechat" widget="wechat"/>

    然后保存,刷新你的页面就可以看到新加的字段了, 如果再点页顶菜单的翻译就可以给当前字段增加多语言功能。 

    以此类推, 你可以在任意系统现有的表中新增字段, 字段有多种类型, 并在相关视图中显示出来。 

     

    更多相关内容
  • Odoo添加字段

    千次阅读 2019-06-16 10:17:37
    2.在 “设置-》技术-》数据库结构-》模型”在模型中找到需要添加字段。 下面我们以产品添加名称字段为例: 2.1首先找到产品模板,查看这个模板的信息 2.2点击编辑,添加明细行,设置相应的字段。 2.3保存...

    1.将odoo调整到开发者模式下

    2.在 “设置-》技术-》数据库结构-》模型”在模型中找到需要添加的字段。

    下面我们以产品添加名称字段为例:

    2.1首先找到产品模板,查看这个模板的信息

    2.2点击编辑,添加明细行,设置相应的字段。

    2.3保存之后,然后点击回到产品明细页面,点击右上角,选择“编辑视图:表单”。创建页面代码。

     注意:上图中<field name="x_name"/>的name值 是我们刚才创建的模型字段里的“字段名称”

    然后点击保存,刷新页面,我们就能在产品明细里看到我们添加的字段了。

     

    展开全文
  • 为已有表单添加字段是种常见的ODOO自定义操作,我们无需创建自定义模块即可在用户界面中进行实现. Partner 模型是 Odoo 内核自带的,无需安装任何应用即可使用,但这样在菜单中会无法查看到。一个简单的方法是安装...
  • 在某些情况下,需要动态添加字段A,B,C…,以及动态添加到tree视图显示,因其后面是后面添加的字段故要用xpath来写 第一步给模型添加字段 例:给 account.move.line 模型动态添加字段 model = self.env['ir.model']...

    在某些情况下,需要动态添加字段A,B,C…,以及动态添加到tree视图显示,因其后面是后面添加的字段故要用xpath来写

    • 第一步给模型添加字段
      例:给 account.move.line 模型动态添加字段
    model = self.env['ir.model'].search([('model', '=', 'account.move.line')], limit=1) #找到记录account.move.line模型的记录
    fields_name = 'x_wg_%s_id' % (res.model_id.model.replace('.', '_')) #字段name
    new_field = self.env['ir.model.fields'].create({
                'model_id': model.id, #添加到model模型的字段
                'name': fields_name,  #字段name
                'field_description': res.name, #字段string
                'ttype': 'many2one',    #字段关系(任意都是可以的)
                'relation': res.model_id.model,  #many2one关联的模型(根据ttype来确认是否关联)
            })
    
    • 把字段添加在视图
      例:往account.move.line的pivot视图添加字段
    fields_arch = '<field name="{}" type="col"/>'.format(fields_name) #拼接xml字段格式
    arch = u"""<xpath expr="//field[@name='product_id']" position="after">{}</xpath>""".format(fields_arch) #拼接xpath格式
    self.env['ir.ui.view'].create({
                'model': 'account.move.line', #往哪个模型添加
                'inherit_id': self.env.ref("weigan_general_ledger.wg_move_line_report_pivot").id, #继承到哪个视图(模块.视图id)
                'mode': 'primary', #模式
                'arch': arch, #具体操作引进来
            })
    

    这样就完全可以实现动态添加字段以及把字段动态添加在某个视图(任意视图都可)

    完整代码如下:
        @api.model
        def create(self, vals):
            res = super(AccountAnalyticDimension, self).create(vals)
            model = self.env['ir.model'].search([('model', '=', 'account.move.line')], limit=1)
            fields_name = 'x_wg_%s_id' % (res.model_id.model.replace('.', '_'))
            new_field = self.env['ir.model.fields'].create({
                'model_id': model.id,
                'name': fields_name,
                'field_description': res.name,
                'ttype': 'many2one',
                'relation': res.model_id.model,
            })
            fields_arch = '<field name="{}" type="col"/>'.format(fields_name)
            arch = u"""<xpath expr="//field[@name='product_id']" position="after">{}</xpath>""".format(fields_arch)
            self.env['ir.ui.view'].create({
                'model': 'account.move.line',
                'inherit_id': self.env.ref("weigan_general_ledger.wg_move_line_report_pivot").id,
                'mode': 'primary',
                'arch': arch,
            })
            return res
    

    上面的完整代码的例子说明:
    在创建这个类(AccountAnalyticDimension)数据完成时,会根据里面数据来动态创建字段,然后把字段添加到pivot视图,即创建一条数据动态添加一个字段然后自动加到视图上。

    当然,也可以完全创建新的视图,即动态创建完全新的视图
    请查阅之前写的文章

    展开全文
  • odoo中的字段约束

    2022-04-14 08:55:54
    _sql_constraints:是模型类的一个属性,意思是添加一个数据库的约束 值是一个列表套元组形式,每个元祖是一个数据库约束。 元祖的第一个元素是约束名字, 第二个元素是约束规则(postgresql约束规则), 第三个...

    1. _sql_constraints

    _sql_constraints:是模型类的一个属性,意思是添加一个数据库的约束

    • 值是一个列表套元组形式,每个元祖是一个数据库约束。
    • 元祖的第一个元素是约束名字,
    • 第二个元素是约束规则(postgresql约束规则),
    • 第三个参数是如果违反约束弹出来的警告信息。

    用法如下:

    class HrpDepartmentModel(models.Model):
        _name = 'school.hr.department'
        _description = '部门信息表'
        _rec_name = 'dep_name'
        _sql_constraints = [
            ('dep_code_unique', 'unique(dep_code)', '部门编号不能重复'),
            ('emp_number_check', 'check(emp_number > 0)', '部门员工数量不能为0')
        ]
    
        dep_code = fields.Char(string='部门编号', required=True)
        dep_name = fields.Char(string='部门名称', required=True)
        address = fields.Char(string='部门地址')
        telephone = fields.Char(string='部门电话')
        emp_number = fields.Integer(string='部门员工数量', default=10)

    例如这个元组,就是一个约束

    ('dep_code_unique', 'unique(dep_code)', '部门编号不能重复')

    其他的约束也是类似的 

    注意: 在加入约束的时候,最好你的数据库表的数据没有违反该约束的数据,如果有违反的,可以到后台控制台日志里面看到有提示。

    展开全文
  • 为已有表单添加字段是种常见的自定义操作,我们无需创建自定义模块即可在用户界面中进行实现。就我们 To-do 应用而言,需要可以选取一组用户对 To-do 项进行协作。我们可以通过在 partner 表单中添加标识来找到这些...
  • test_count是一个计算字段 拥有只读属性 代码部分:定义了一个compute名为【_compute_value2】 函数逻辑:在mysale.mysale表里 找到字段name='001'的数量为value2 并替换掉self.value的值 遇到的问题1: ...
  • 背景:从运营岗位离职到实施岗位,实施过程中前期客户都是爹,odoo背景就不再做介绍,添加字段应该是我岗位的越界了,只是一时好奇进行测试,话不多说开干吧 首先,在我们的销售页面,如果销售页面需要显示客户税号...
  • odoo 字段设置权限

    2021-08-21 16:38:54
    odoo14 字段设置权限 1, 在 scurty文件中新增一个xml(res.groups.xml)文件在文件中下写入语句 <odoo> <record id="sale_order_group_price" model="res.groups"> <field name="name">销售...
  • mbid.mbcs_code)]) # 创建字段 model = self.env['ir.model']._get(self._name) fields_name = 'x_yqxh5' # %s_id' % (rec.dimension_id.model_id.model.replace('.', '_')) print('modelid',model.id) if fields_...
  • Selection字段类型一般作为下拉列表显示 selection的选项内容基本是固定,但 根据权限组显示不同的selection内容的 也可以通过动态创建进行选项内容的设置 1. 常规的Selection内容(固定的) 2. 权限组显示不同的...
  • Odoo字段详解

    2021-12-15 16:16:18
    odoo中的ORM对象字段详细介绍
  • 今天发现了一个有点奇怪的事,比如name属性为required字段,设置readonly以后,前台在onchange事件改写了字段的值,保存的...2种方法修正,write或者create方法,vals添加self.name值,或者在xml文件字段加一个属性 &
  • 多表动态添加至一个临时表上,结果,字段名有重复的,失败 # 临时单项 field中的tree一样不能动态显示,估计是指定的默认tree 需结合ID 根据数据库表名获得单项显示字段 动态生产与显示字段 增加xzlist,配对前面...
  • odoo关系字段赋值

    千次阅读 2018-04-27 10:00:56
    这里主要是讲模型write/create 方法字典参数中关系字段(M2O, O2M,M2M字段)的值的写法。M2O: 比较简单,数据库中存的是关系模型的记录id, 是一个整型数值,写法如下: sale_order_line.write({'order_id': order....
  • 一、字段增加唯一约束 前台违反约束效果: 后台模型中定义代码: 括号中三个参数依次是约束定义名、约束定义内容、弹出提醒内容。 在_sql_constraints定义中可以填写多个字段的约束定义,每个用()包裹,之间用...
  • 代码部分:添加Date或者Datetime字段即可 视图部分加进去即可: 设置-->翻译-->语言-->chinese-->编辑 *注:格式可以自行修改
  • 本文将从Odoo模型概述、Odoo的常规字段、自动字段和保留字段、常用字段属性、四个小节进行分享 1、Odoo模型概述 1.1 初识Model odoo中的Model分为三类 models.AbstractModel 抽象模块: 类似于抽象类,常用于...
  • Odoo 字段基本属性

    2021-01-19 11:32:01
    gitee代码地址:点击跳转(分支learning_odoo12) ...class odoo.fields.Char() 定义str类型的字段 class odoo.fields.Boolean() 定义布尔类型的字段 class odoo.fields.Integer() 定义数值类型的字段 class odoo.f
  • odoo 关系字段操作

    2019-12-14 17:29:25
    o2m与m2m字段操作: (0, 0, values):使用values字段指定的值创建新的记录。 self.book= [(0, 0, { 'book_name': '活着', 'author': '余华', })] ...
  • 代码:py文件中: image = fields.Binary(string="上传图片") xml文件中: <field name="image" widget="image" class="oe_avatar"/> 重启升级即可。
  • _sql_constraints = [ ('partner_tax_rate_check', 'check(0 <=tax_rate<= 100)', '税率必须在0-100(%)之间!'), ] 提示错误 语法错误 在 "<=" 或附近的 LINE 1: ...es_partner_partner_tax_rat ...
  • Odoo通过外键关联字段

    2021-12-15 16:36:24
    A表想根据外键中B表的字段值变化自动变化
  • ODOO动态创建字段以及动态视图展示 #动态创建字段以及展示 model = self.env['ir.model']._get('model_name') fields_name = 'x_%s' % (fields_name) if fields_name not in self: new_field = self.env['ir.model...
  • 为其定义必需的字段,并添加manifest, init, security等各种声明 # -*- coding: utf-8 -*- from odoo import models, fields, api class ImageURL(fields.Field): type = "imagerul" column_type = ('varchar'...
  • Odoo关系字段Eval

    2021-01-05 10:58:47
    Odoo关系字段 多关系字段的写入方法,0-6分别是什么含义? One2many: (0,0,{values}) 根据values里面的信息新建一个记录 (1,ID,{values}),这里的ID是指o2m中的m表的记录ID,更新id=ID的记录 (2,ID),删除id=ID...
  • odoo 字段属性

    2021-03-31 16:04:53
    本文对字段属性进行分析记录。 属性名称 格式用途 size 设置文本长度 size=16 string 字段标签 默认取定义 string,否则取字段名,前台可以自定义标签名称 translate 带翻译的字段 translate = True ...
  • Selection字段类型一般作为下拉列表显示,selection的选项内容基本是固定,但是针对一些特殊要求,根据权限组显示不同的selection内容的,也可以通过动态创建进行选项内容的设置。
  • 我在使用odoo自带的fields.date.today()时出现了一个问题: 我的一个日期字段属性不能实现获取当天的时间,它现在默认获取的程序运行当天的时间,而不是目前的实际时间,感觉很奇怪。 因为不太清楚fields....
  • 1) name:标识字段名称 2)string:标签文本,如果我们想要覆盖模型定义提供的标签文本,可以使用它。 3)help:提示文本,当您将指针悬停在字段上时,将显示一个提示文本,并允许覆盖模型定义提供的帮助文本。 4)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,331
精华内容 532
关键字:

odoo添加字段