如何使用新API正确创建,编写或取消链接many2many字段的记录?

时间:2015-09-07 08:48:06

标签: openerp odoo odoo-8 openerp-8

有人可以举个例子来使用新API来操作many2many字段吗?我试图阅读Documentation无济于事。

以下是我的示例类:

var cert = new X509Certificate2();
cert.Import(Convert.FromBase64String("cert_string"));

var client = new WebSiteManagementClient(new CertificateCloudCredentials("id_to_sub", cert));
var instanceIds = client.WebSites.GetInstanceIds("webspace_name", "webapp_name");

2 个答案:

答案 0 :(得分:1)

在Odoo 8中,新的ORM API比前一个更好(带有所有这些无聊(cr,uid,id,..)参数)。这个新API的一大优势是我们现在正在使用对象,而不是 ID

新方法所需要的只是self参数。你可以迭代它 - 它还包括odoo对象的集合。

还有一个神奇变量 - self.env,它是Environment类型,包含所有这些cr, uid, etc.内容。它还包含所有已知模型的集合 - 这就是您所需要的。

那你为什么不这样试试呢?

@api.one
def test(self):
    model_one = self.env['example.class.one']
    model_one.create({'name': 'Some ONE object', 'value': 2.0})
    ones = model_one.browse([1, 3, 5])
    ones2 = model_one.search([('name', '=', 'Some name')])
    # You can imagine - search() return also objects! :)
    ones2[0].unlink()
    # Or, to deal with you many2many field...
    self.example_class_ones += model_one.new({
        'name': 'New comer to the many2many relation',
        'value': 666.0})

希望你回答的问题。

答案 1 :(得分:0)

您可以参考我的情况如下, 在@api

@api.onchange('opportunity_id')
    def _get_description(self):
        if self.opportunity_id.id:
            self.x_description = self.opportunity_id.x_description 

或声明为设置关系和字段(相关)作为下面的链接

Pass custom field values from oppertunity to quotation in odoo 10