如何在 odoo 9 中创建自动增量字段

how to create auto increment field in odoo 9

在我的模型中,我想创建自动增量字段,不幸的是,我尝试遵循一些 tuts,所有教程都只在 odoo 8 下工作。 在这个 link 中,我只是按照 odoo 9 中的一些威胁的指示进行操作 它正在通过 https://whosebug.com/users/3734244/danidee 的回答工作 但仍然不适合我。这是我的模型:

class cashadvance(osv.osv):
    _name = 'comben.cashadvance'
    _columns = {
        'sequence_id': fields.char(string='Sequence ID', help="Auto Generate"),
    }

 @api.model
    def create(self, vals):
        vals['sequence_id'] = self.env['ir.sequence'].get('seq.cashadvance')
        return super(cashadvance, self).create(vals)

这是我的 xml :

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">
        <record id="cashadvance_seq" model="ir.sequence">
          <field name="name">No_PD</field>
          <field name="padding">3</field>
          <field name="code">seq.cashadvance</field>
        </record>
    </data>
</openerp>

上面的代码没有显示错误,但是当我点击保存按钮时 sequence_id 字段保持空白。 请帮助我...

尝试使用以下代码。

替换创建方法
@api.model
def create(self, vals):
    vals['sequence_id'] = self.env['ir.sequence'].get('comben.cashadvance')
    return super(cashadvance, self).create(vals)

替换xml文件
<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">
        <record id="cashadvance_seq" model="ir.sequence">
          <field name="name">No_PD</field>
          <field name="padding">3</field>
          <field name="code">comben.cashadvance</field>
        </record>
    </data>
</openerp>

之后重启odoo服务器并升级你的模块。

注意:

当你升级模块时,它有 .xml 文件 将不会升级。所以首先删除 noupdate="1" 属性并升级模块。检查流量。它应该工作正常。不要忘记在序列视图文件中再次放置 noupdate="1"

确保您已经在 __ openerp__.py 文件

中提供了 .xml 文件