首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenERP -如何使用py代码中的列表值更新视图

OpenERP -如何使用py代码中的列表值更新视图
EN

Stack Overflow用户
提问于 2014-12-12 04:31:42
回答 1查看 966关注 0票数 0

在我的py代码中,我获得了list product_complete,这是一个字符串列表。函数action_search来自“搜索”按钮。我想知道如何更新视图元素(该元素可以是什么,如树或其他元素?)在Python代码中使用我列表中的值?谢谢。

代码如下:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2014-12-14 19:59:05

您的return语句应该是这样的:

代码语言:javascript
运行
复制
return {'value': {'field_name': field_value}}

在您的代码中,您试图将列表值分配给一个简单的字段,该字段是产品的id。

我想你想要更新一些one2many字段。对于one2many和many2many值,您可能需要阅读本文档的末尾:https://doc.odoo.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27431857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档