Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
55869 Lượt xem

I have seen this eval="[(6, 0, [ref('test_security.base_security_access)])]" and eval="[(4, [ref('test_security.base_security_access')])]" in openerp 7.0 code, what is the use of 6,0 and 4 in security and is there any other combination like this, please explain me.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

From openerp/osv/fields.py

# Values: (0, 0, { fields }) create

# (1, ID, { fields }) update (write fields to ID)

# (2, ID) remove (calls unlink on ID, that will also delete the relationship because of the ondelete)

# (3, ID) unlink (delete the relationship between the two objects but does not delete ID)

# (4, ID) link (add a relationship)

# (5, ID) unlink all

# (6, ?, ids) set a list of links


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Yes there are more about this syntax. Please take as a reference a docstring located in the source code of the odoo orm write method for explanation

Ảnh đại diện
Huỷ bỏ
Tác giả

Thank you so much for helping me and I got this.

Câu trả lời hay nhất

For a many2many field, a list of tuples is expected. Here is the list of tuple that are accepted, with the corresponding semantics ::

  • (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)

Example: [(6, 0, [8, 5, 6, 4])] sets the many2many to ids [8, 5, 6, 4]


For a one2many field, a lits of tuples is expected. Here is the list of tuple that are accepted, with the corresponding semantics ::

                

  • (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)
Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 2 24
28707
0
thg 7 22
3035
0
thg 10 17
3728
6
thg 9 17
10816
1
thg 4 17
3103