Openerp 用户界面在创建模型时混乱

Openerp 用户界面在创建模型时混乱,openerp,odoo,openerp-8,odoo-8,Openerp,Odoo,Openerp 8,Odoo 8,我有一个模型: class MyModel: name = ... field1 = fields.Many2one(comodel_name='sale.order') @staticmethod def _do_some(env, inst): ... env['stock.picking'].create(vals={ 'move_type': 'direct', 'com

我有一个模型:

class MyModel:
    name = ...
    field1 = fields.Many2one(comodel_name='sale.order')

    @staticmethod
    def _do_some(env, inst):
        ... 

        env['stock.picking'].create(vals={
            'move_type': 'direct',
            'company_id': delivery_order.company_id.id,
            'picking_type_id': pick_type_id
        }) # UI Scrambles when this happens


        ...

    @onchange('field1')
    def field1_changed(self):
        # self.id is a NewId ... which makes no sense

        # this_inst is a replacement for self (because of NewId)
        this_inst = ... I search this instance by name

        MyModel._do_some(self.env, this_inst)
我有一个视图,它有一个下拉字段,用于
MyModel.field1
,当我更改它时,它会自然调用
MyModel.field1\u changed
,它会依次调用
MyModel.\u do\u some


create
被调用到
stock.picking
model之后,我的UI会混乱,我的意思是
MyModel
实例的所有字段值都会从视图中删除,而且验证似乎会阻止我保存,因为“缺少必需字段”.

onchange通常不允许数据库操作,这就是
self.id
成为
NewId
实例的原因

覆盖
write
功能,检查何时写入
field1
,并执行数据库操作。优点:
self.id
不是
NewId
而是实际id