Jalena Blog

  • 首页
  • 程序开发
    • Java
    • Spring
    • SpringBoot
    • SpringMvc
    • Python
    • Odoo
    • C#
    • SQL
    • Web
    • Linux
  • 移动设备
    • Android
    • Router
  • 杂七杂八
    • 我的废话
    • 音频
    • 视频
    • 常用软件
  • 关于
  1. 首页
  2. 软件开发
  3. Python
  4. Odoo
  5. 正文

Odoo 使用 ir.sequence 生成序列号

2017-12-28

在Odoo里面,默认提供了ir.sequence这样一个模块,他的作用就是一个序号生成器。在这次的项目中刚好用到了,这里就记录一下。

创建序号

打开 data/data.xml 写入如下代码:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <data noupdate="True">
      <record id="contract_number" model="ir.sequence">
         <field name="name">预算编号</field>
         <field name="code">budget.number</field>
         <field name="prefix">HT%(year)s%(month)s%(day)s</field>
         <field name="suffix">号</field>
         <field name="padding">1</field>
      </record>
   </data>
</odoo>

参数说明:

  • name - 名字,随便叫什么都行
  • code - 调用生成编码的 Key,需保证唯一性
  • prefix - 前缀,可以是固定的字面量也可以是组合参数
  • padding - 序列递增的位数

调用

将data/data.xml加入到__manifest__.py的data列表中。

budget_num = fields.Char(string=u'预算编号', copy=False, readonly=True, default=lambda x: _('New'))

@api.model
def create(self, vals):
	""" 保存方法重写 """
	if not vals.get('name', False) or vals['name'] == _('New'):
		vals['budget_num'] = self.env['ir.sequence'].next_by_code('budget.number')
	return super(Budget, self).create(vals)
标签: odoo Python
最后更新:2019-01-02

Jalena

原创内容,转载请注明出处! 部分内容来自网络,请遵守法律适用!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

【腾讯云】云服务器特惠热卖中
文章目录
  • 创建序号
  • 调用
标签聚合
java Centos odoo 其他 生活 wordpress docker MySql
分类
  • Android / 4篇
  • C# / 10篇
  • Codec / 9篇
  • Conversion / 14篇
  • Editing / 16篇
  • Java / 47篇
  • Javascript / 3篇
  • Linux / 30篇
  • Odoo / 25篇
  • Python / 6篇
  • SQL / 30篇
  • Web / 3篇
  • Windows / 4篇
  • 我的日记 / 10篇
  • 杂七杂八 / 93篇
  • 软件开发 / 72篇
  • 非线性编辑 / 1篇

COPYRIGHT © 2026 Jalena Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备17025376号