2016-07-12 2 views
2

사용자는 개 품종 (dog_breed, 선택 필드)을 선택할 수있는 모델을 가지고 있습니다. 그런 다음 동일한 모델에서 Many2many 필드 (dogs)를 사용하여 사용자가 개를 추가 할 수 있습니다. 하지만 나는 사용자가 개를 추가 할 때 번식이 Selection 필드에서 선택된 개 중 하나만 선택할 수 있기를 원합니다.동적 도메인을 여러 개의 필드에 적용하는 가장 좋은 방법은 Odoo8입니까?

<field name="dog_breed"/> 
<field name="dogs" domain="[('breed', '=', dog_breed)]"/> 

당신이 먼저 당신이 찾고있는 사람이 이미있는 경우 그 중 하나를 선택, 사용할 수있는 레코드 목록을 참조 Many2many에 요소를 추가 할 수 있습니다. 필요한 것은 해당 목록에 도메인을 적용하는 것입니다.

예 :

사용자가 선택 필드에 dog_breed 폭스 테리어를 선택한다. 이제 그는 Many2many dogs에 요소를 추가합니다. 개를 모두 사용할 수있는 목록이 열리지 만 모든 개를 사용할 수있는 목록을 표시하려고합니다. 그렇게하기 위해 위의 코드를 작성했지만 전혀 작동하지 않는 것은 입니다. 내가 코드 이런 식으로 수정하면

그러나 :

<field name="dog_breed"/> 
<field name="dogs" domain="[('breed', '=', 'foxterrier')]"/> 

그것은 완벽하게 작동합니다. XML 코드에서이를 관리 할 수 ​​있습니까?

변수 오른쪽에

답변

1

동적 도메인은 파이썬 코드에 적용, 그래서 난 그냥 파이썬에서 Many2many 필드의 정의에 내 도메인을 절단했다되어야합니다

dogs = fields.Many2many(
    comodel_name='dog', 
    relation='mss_dog_rel', 
    column1='mss_id', 
    column2='dog_id', 
    string='Dogs', 
    domain="[('breed', '=', dog_breed)]", 
) 
관련 문제