我正在尝试将数据导入一个显然如下的表单
- 序列号(序列号字段 - 使用 openerp 序列生成)
- 客户(客户参考字段)
- 服务(一二多领域)
- 合同开始日期
- 合同结束日期
我导入的数据是这样的
Customer Contract Start Date Contract End Date
ABC 13/02/12 12/05/14
12/05/14 14/04/16
12/08/16 14/06/18
XYZ 15/04/12 18/08/14
11/05/14 19/05/16
现在在我的表单中生成了 2 条记录,其中包含子记录,但为第一条记录生成的 id 是 R001,第二条是 R004。即,对于每条导入记录,都会生成一个 id(但不使用)。所以有一个间隔。但这是我确定的使用 one2many 导入表单值的方法。
现在我需要了解以下内容
- 我做对了吗,还是有其他方法可以导入 one2many 数据
- 有没有办法在导入时组织我的序列号
- 最后一个(歪)是我可以去数据库更新所有值到一个序列。当我手动创建表单字段时,会使用 openerp 生成的最后一个 id+1。所以我需要更新序列号以从我在数据库中更改的最后一个值 + 1 开始。
请指导我做必要的事情。如果不清楚,请随时更新帖子。谢谢你的时间。
来自奥多尼的评论
我的Register_sequence.xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Sequences for stoc.installed.details (register) -->
<record id="seq_type_register" model="ir.sequence.type">
<field name="name">Register</field>
<field name="code">stock.installed_details</field>
</record>
<record id="seq_register" model="ir.sequence">
<field name="name">Register</field>
<field name="code">stock.installed_details</field>
<field name="prefix">Reg</field>
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>
</data>
</openerp>
我的Python 文件
class installed_details(osv.osv):
_name = "stock.installed_details"
_description = "Installed Details"
_columns = {
'name': fields.char('Name', size=64),
'partner_id': fields.many2one('res.partner', 'Customer', required=True, help="Address of Hospital / Medical Centre."),
'product_id': fields.many2one('product.product', 'Product', select=True, domain=[('type', '<>', 'service')], states={'done': [('readonly', True)]}),
'contract_lines' : fields.one2many('contract.contract', 'register_id','Contract'),
}
def create(self, cr, uid, vals, context=None):
if vals.get('name', '/') == '/':
vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'stock.installed_details') or '/'
return super(Installed_details, self).create(cr, uid, vals, context=context)
installed_details()
class contract_contract(osv.osv):
_name = "contract.contract"
_description = "Contract"
_columns = {
'register_id': fields.many2one('stock.installed_details', 'Register'),
'contract_start_date': fields.date('Contract Start Date'),
'contract_end_date': fields.date('Contract End Date')
}
contract_contract()