【问题标题】:Increment sequence when I click discard button单击丢弃按钮时的增量序列
【发布时间】:2014-02-20 06:52:33
【问题描述】:

我正在使用 python 和 xml 在 openerp 中工作:

我正在尝试在我的客户表单中添加序列。我已经添加成功。但是当我单击保存并丢弃按钮时,计数增加了 1。我想在只保存记录的同时增加 1。

xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="1">
        <record id="seq_type_master_item" model="ir.sequence.type">
            <field name="name">Master item</field>
            <field name="code">master.item</field>
        </record>

        <record id="seq_master_item" model="ir.sequence">
            <field name="name">Master item</field>
            <field name="code">master.item</field>
            <field name="prefix">CS</field>
            <field name="padding">3</field>
        </record>
    </data>
</openerp>

蟒蛇:

_defaults = {
  'client_id': lambda self,cr,uid,context: self.pool.get('ir.sequence').get(cr, uid, 'master.item')
 }

'client_id':fields.char(' ',size=64)

【问题讨论】:

  • 您是否将列字段标记为 readonly ?请在您的问题中发布列部分。
  • 我添加了专栏。请看

标签: python openerp sequence


【解决方案1】:

试试这个,

在您的 view.xml 文件中更改此内容

<field name="clien_id" readonly="1"/>

【讨论】:

  • 如果我设置只读,它会同时生成两个 id。示例:假设 id 为 c01,同时单击创建按钮,保存记录后我得到 c02。
  • 那是因为你默认调用了sequence。在 .py 文件中查看您的 _defaults
  • 根据我在创建方法中的建议调用顺序。所以你需要重写该对象的创建方法。
  • 您可以像在 purchase.py 文件或 sale.py 文件中一样搜索它的核心模块。只需搜索“def create”方法。你可以得到主意。
  • def create(self, cr, uid, vals, context={}): next_seq = self.pool.get('ir.sequence').get(cr, uid, 'master.lead ') vals['lead_id'] = next_seq res = super(crm_lead, self).create(cr, uid, vals, context) return res
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
相关资源
最近更新 更多