解释OpenERP 7.0中的安全性以及(6,0)和(4)的用途是什么?

时间:2015-08-18 05:29:15

标签: openerp odoo openerp-7 odoo-8

我见过这个

eval="[(6, 0, ref('test_security.base_security_access)])]" 

eval="[(4, [ref('test_security.base_security_access')])]"

在OpenERP 7.0代码中。

6,0 4 在安全方面的用途是什么,还有这样的其他组合,请解释一下。

3 个答案:

答案 0 :(得分:2)

(4, ID)表示链接到id = ID的现有记录,这将添加与现有记录的关系。

虽然(6, 0, [IDs])表示替换链接ID列表。首先,它将取消链接/删除该记录的现有ID,然后使用ID列表中的每个ID链接到现有记录。

对于删除现有ID和链接ID,它将删除两个对象之间的关系,但不会使用(6, 0, [IDs])

删除目标对象本身

有关详细信息,请visit here.

答案 1 :(得分:2)

最后我在ORM写法中找到了答案。

  • 对于many2many字段,需要一个元组列表。           这是接受的元组列表,带有相应的语义::

             (0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
             (1, ID, { values })    update the linked record with id = ID (write *values* on it)
             (2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
             (3, ID)                cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
             (4, ID)                link to existing record with id = ID (adds a relationship)
             (5)                    unlink all (like using (3,ID) for all linked records)
             (6, 0, [IDs])          replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)
    

实施例:                     [(6,0,[8,5,6,4])]将many2many设置为id [8,5,6,4]

  • 对于one2many字段,预计会有一些元组。           这是接受的元组列表,带有相应的语义::

             (0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
             (1, ID, { values })    update the linked record with id = ID (write *values* on it)
             (2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
    

    实施例:                 [(0,0,{' field_name':field_value_record1,...}),(0,0,{' field_name':field_value_record2,...})]

  • 对于many2one字段,只需使用必须已存在的目标记录ID,或False删除该链接。

  • 对于参考字段,请使用包含模型名称,逗号和目标对象ID的字符串(例如:'product.product, 5'

答案 2 :(得分:1)

完整的选项列表位于documentation for the osv class.

  

(0,0,{values})链接到需要使用的新记录   给定值字典

     

(1,ID,{values})使用id = ID更新链接记录(写入   价值观)

     

(2,ID)删除并删除id = ID的链接记录(调用unlink   在ID上,它将完全删除对象,并将其链接为   孔)

     

(3,ID)切断到id = ID的链接记录的链接(删除   两个对象之间的关系但不删除目标   对象本身)

     

(4,ID)链接到id = ID的现有记录(添加关系)

     

(5)取消所有链接(如使用(3,ID)所有链接记录)

     

(6,0,[ID])替换链接ID列表(如使用(5))   (4,ID)ID列表中的每个ID)