2014-12-11 1 views
0

내 py 코드에서 list of product_complete를 얻었습니다. 이것은 문자열 목록입니다. 기능 action_search는 "검색"버튼에 있습니다. 파이썬 코드 내 목록의 값을 사용하여 뷰 요소를 업데이트 할 수 있는지 궁금합니다 (그 요소는 트리 또는 다른 것일 수 있습니다.)? 감사.OpenERP - py 코드에서 목록 값으로보기를 업데이트하는 방법

return {'value': {'field_name': field_value}} 
코드에서

당신이하려고 :

<record id="bom_where_use_form" model="ir.ui.view"> 
      <field name="name">bom.where.use.form</field> 
      <field name="model">mrp.bom</field> 
      <field name="priority" eval="20"/> 
      <field name="type">form</field> 
      <field name="arch" type="xml"> 
       <field name="product_tmpl_id" > </field> 
       <button name="action_search" string="Search" type="object" class="oe_highlight"/> 
       <field name="bom_line_ids" widget="one2many_list"> 
        <tree string="Components" editable="bottom"> 
         <field name="sequence" widget="handle"/> 
         <field name="product_id" /> 
        </tree> 
       </field> 
       <field name="product_id" /> 
      </field> 
     </record> 
+1

코드를 게시 할 수 있습니까? –

+0

질문에 코드를 게시했습니다. – Nebojsa

+0

감사합니다, Andrei. 함수의 끝에서 product_complete라는 문자열 목록이 있습니다. 각 문자열은 전체 제품 코드와 이름을 나타냅니다. 좀 더 구체적으로 말씀해 주시겠습니까? – Nebojsa

답변

0

귀하의 return 문은 다음과 같이해야한다 : 여기

class mrp_bom(osv.Model): 
    _inherit = 'mrp.bom' 

    def action_search(self, cr, uid, ids, vals, context=None): 
     bom_ids = [] 
     pd_ids = [] 
     product_complete = [] 
     ptemplid = int(self.browse(cr, uid, ids[0], context=context).product_tmpl_id.id) 
     mbl_obj = self.pool.get('mrp.bom.line') 
     id_s = mbl_obj.search(cr, uid, [('product_id', '=', ptemplid)]) 
     for rec in mbl_obj.browse(cr, uid, id_s, context=context):  
      bom_ids.append(rec.bom_id.id) 
     for rec in self.browse(cr, uid, bom_ids, context=context):  
      pd_ids.append(rec.product_id.id) 
     pp_obj = self.pool.get('product.product') 
     for rec in pp_obj.browse(cr, uid, pd_ids, context=context):  
      product_complete.append('['+ str(rec.default_code) + ']'+ ' ' + str(rec.name_template)) 
     print "\n\n Inside action_search() product_complete ", product_complete 
     # raise osv.except_osv(('Message!'), ('Inside action_search!')) 
     vals = {'product_id' : product_complete} 
     return {'value' : vals} 

내 XML입니다 : 여기

코드입니다 제품의 ID 인 간단한 필드에 목록 값을 지정합니다.

one2many 필드를 업데이트하려고한다고 가정합니다. one2many 및 many2many 값의 경우이 문서의 끝 부분을 읽어 보시기 바랍니다. https://doc.odoo.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html/

+0

감사합니다, Andrei. 질문에 코드를 업데이트하고 내 XML을 추가했습니다. 함수의 끝에서 product_complete라는 문자열 목록이 있습니다. 각 문자열은 전체 제품 코드와 이름을 나타냅니다. 좀 더 구체적으로 말씀해 주시겠습니까? product_id를 사용했지만 공백으로 표시됩니다. 잘못된 것을 수행해야합니다. – Nebojsa

+0

왜 many2one 관계 필드에 목록을 할당하려고합니까? mrp.bom.product_id는 product.product에 대한 참조입니다.이 필드에서 일부 제품의 ID 인 단일 값을 저장할 수 있습니다 ... –

관련 문제