• odoo12 修行基础篇之 添加记录编码 (五)


    解决自定义类编号的问题,其实比较简单,就是按照如下的步骤搞起就好:

    1、在my_customer_complain.py中添加字段

    name = fields.Char(
        string='编号', default=lambda self: _('New'),
        copy=False, readonly=True, track_visibility='always'
    )

    源码就是这么写的,照搬过来就可以了,track_visibility我们在记录中用过,其实就相当于多了一个记录的字段。

    lambda中的内容,其实就是默认值,这里用了翻译的支持。默认显示新建,有了编号就显示编号。

    2、重写create方法

    @api.model
    def create(self, vals):
        if not vals.get('name') or vals['name'] == _('New'):
            vals['name'] = self.env['ir.sequence'].next_by_code('my.customer.complain') or _('New')
        return super().create(vals)

    就是在创建时看看name,如果没有值或者为新建,就去ir.sequence表中找一个code为my.customer.complain的记录,没找到就把name设为新建,找到了就按照记录中的规则,生成一个编号。

    3、在ir.sequence表中增加code为my.customer.complain的记录,并设定规则

    在侧边栏设置中找技术选项,在下拉菜单中找到序号,点击进入。

    按如下方式创建记录:

    升级一下,创建一条记录瞅瞅。

    美化了一下页面,增加了一个div样式。

    顺便提一下,建议使用group定义结构,并加上合适的name,便于以后继承使用。

    到现在还没有去搞过tree视图,下面我们去tree视图中玩一玩,看看如何筛选,分组。

    项目git地址:https://github.com/SamNicole1809/odoo12_my_pro,带目录

  • 相关阅读:
    [CQOI2009]叶子的染色
    CF149D 【Coloring Brackets】
    [BJOI2016]回转寿司
    linux基础学习-19.2-Shell脚本的创建
    linux基础学习-19.1-Shell的介绍
    linux基础学习-18.11-第六关考试题
    linux基础学习-18.10-awk数组
    linux基础学习-18.9-awk中的动作
    linux基础学习-18.8-awk特殊模式-BEGIN模式与END模式
    linux基础学习-18.7-awk范围模式
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13672986.html
Copyright © 2020-2023  润新知