2017-10-09 5 views
1

내 모듈에서 res.partner 양식에 액세스하려고합니다. 하지만 나는 고객 (partner_id) 대신 'pet_name'을 드롭 다운에서 특정 클래스에 대해서만 원한다. 나는 기능을 적용했고 그 일을했다. 그러나, 완전한 res.partner를 위해 작동합니다. 하지만 나는 이것을 원하지 않는다. 그래서, 어느 누구도이 문제에 대한 해결책이나 조건을 제공 할 수 있습니까?res.partner 양식에서 partner_id를 제외한 필드 드롭 다운을 표시 할 특정 클래스의 조건을 추가하는 방법

내 코드는 여기에 있습니다 :

클래스 customer_information (models.Model) : api.multi

def name_get(self): 

    result = [] 

    for record in self: 

     name = '[' 

     if record.pet_name: 

      name += record.pet_name + ']' + ' ' + record.name 

     else: 

      name += '] ' + record.name 

     result.append((record.id, name)) 

    return result 

pet_name = fields.Char @

_inherit = "res.partner" 

("애완 동물 이름")

dog_cat = fields.Selection([('dog', 'Dog'), ('cat', 'Cat')], string="Dog/Cat") 

species = fields.Many2one('species.pet', string="Species") 

pet_size = fields.Selection([('large', 'Large'), ('medium', 'Medium'), ('small', 'Small')], string="Size") 

class mach ine_weight (models.Model) :

_name = 'machine.weight' 

machine_id = fields.Many2one('sale.pet', string='Machine Weight', ondelete='cascade', index=True, 

          copy=False) 

pet = fields.Many2one('res.partner') 

weight = fields.Integer() 

price = fields.Integer() 

답변

1

우리는 상황을 전달하고 name_get() 방법으로 그 상황에 맞는 키를 확인해야합니다. 우리가 그 맥락을 얻으면, 당신의 논리를 발화 시키십시오. 그렇지 않으면 핵심 논리가 실행됩니다. 예를 들어

:

XML 측 업데이트 코드에서 :

<field name="pet" context="{'need_pet': True}"> 

이제 방법 컨텍스트 키를 확인.

@api.multi 
def name_get(self): 
    if self._context and self._context.has_key('need_pet'): 
     result = [] 
     for record in self: 
      name = '[' 
      if record.pet_name: 
       name += record.pet_name + ']' + ' ' + record.name 
      else: 
       name += '] ' + record.name 
      result.append((record.id, name)) 
     return result 
    return super(customer_information, self).name_get() 
+0

감사합니다. Odedra ... –