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

Hi community,

Thank you in advance for any comments / suggestions that could help my problem.

I have two objects currently that I want to uniquely link together. A "container object" and a "calculations" object. I want every container to have one (and only) one calculations object, and one calculations object to have one and only one container object.

I know that one2one is depreciated, but my programming need does not call for inheritance. The two objects have absolutely nothing to do with each other.

Thus, I have tried adding a many2one field in container AND a many2one field in calculations. This has actually worked rather well, however I'm stuck at the final part:

A container object is always created first. So, when I create a container, I can open the "calculations" field from the form, and select "Create new" from the dropdown. My question is this:

When the new form opens to create a "calculations" object, how can I reference the ID of my "container" object, so that I can automatically assign THAT container to my calculations object, by default. In this way, if I don't present the user with a field to set the "container", the default will always be used and thus mimicking a one2one relationship with 2 many2ones.

Does anyone have a suggestion?

아바타
취소
베스트 답변

What you need to set a context on "Container" form's calculation_id field:.

Assuming that "Container" and a many2one calculation_id for the Calculation object, and the Calculation object has a many2one container_id:

<field name="calculation_id" context="{'default_container_id':  active_id}" />

This will tell the Calculation form to by default set the container_id field with the Container's Id.

아바타
취소
작성자

Awesome advice!!! Thank you so much for the help. Works great.

This is not working ! I have crossed many2one relations to try mimick one2one and I get errors of missing ID value in the required field

관련 게시물 답글 화면 활동
3
10월 23
4526
3
2월 24
12719
1
1월 25
2176
2
9월 22
9868
2
4월 22
4873