找不到为什么 odoo 序列递增两次?

cannot find out why odoo sequence is incrementing twice?

我创建了一个带有序列字段的模型:

class AimedPurchaseOrder(models.Model):
    _name = "aimed.purchase.order"

    name = fields.Char('Number', readonly=True, copy=False, 
                    default=lambda self:self.env['ir.sequence'].next_by_code('aimed.purchase.order'))

然后我添加了这样的序列:

<record id="seq_purchase_order" model="ir.sequence">
    <field name="name">Aimed Purchase Order</field>
    <field name="code">aimed.purchase.order</field>
    <field name="prefix">BCV</field>
    <field name="padding">4</field>
    <field name="company_id" eval="False"/>
</record>

问题是当我打开表单视图创建新记录时,我得到了它应该保存的序列的下一个值,但是当我保存记录时它又递增了一次,我在具有此序列的树视图:

BCV0002、BCV0004、BCV0006、...

这怎么可能?我该如何修复它以保存第一次显示的默认值而不再次递增?

Update:

当我删除 readonly=True 时它工作正常,但我不能让这个字段可编辑。

我不完全确定,但 IIRC 你可以使用 force_save="1" 因为 Odoo 11 作为视图中字段的属性来告诉 Odoo 为只读字段写入值。

只读字段的示例:

<field name="my_readonly_field" readonly="1" force_save="1" />

如果在较旧的 Odoos(10 及以下)上,有一个社区模块将此功能添加到 Odoo,称为 web_readonly_bypass,例如可以找到 Odoo 10 的 here