콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
5058 화면

While defining records in security.xml file, we can sometimes see lines similar to:

<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/>

In other places, there are lines like:

<field name="groups" eval="[(4, ref('base.group_portal'))]"/> 

I know there is some concept about implied ids, but I don't know what these numbers mean and how to use them. Can someone please help me understand it?  


아바타
취소
베스트 답변

See ORM API documentation:


One2many and Many2many use a special “commands” format to manipulate the set of records stored in/associated with the field.

This format is a list of triplets executed sequentially, where each triplet is a command to execute on the set of records. Not all commands apply in all situations. Possible commands are:

(0, _, values)

adds a new record created from the provided value dict.

(1, id, values)

updates an existing record of id id with the values in values. Can not be used in create().

(2, id, _)

removes the record of id id from the set, then deletes it (from the database). Can not be used in create().

(3, id, _)

removes the record of id id from the set, but does not delete it. Can not be used on One2many. Can not be used in create().

(4, id, _)

adds an existing record of id id to the set. Can not be used on One2many.

(5, _, _)

removes all records from the set, equivalent to using the command 3 on every record explicitly. Can not be used on One2many. Can not be used in create().

(6, _, ids)

replaces all existing records in the set by the ids list, equivalent to using the command 5 followed by a command 4 for each id in ids. Can not be used on One2many.

Note

Values marked as _ in the list above are ignored and can be anything, generally 0 or False.


아바타
취소
작성자

Thanks zbik. I will read up on the ORM docs more thoroughly.

관련 게시물 답글 화면 활동
2
10월 22
6454
1
12월 15
6487
2
3월 24
6638
0
11월 15
4921
1
3월 15
5126