python - 计算字段自己的类和不同的类? - Openerp

标签 python function arguments odoo self

我对这段代码有疑问。我希望能得到一些帮助。

class demo(osv.osv):

    _inherit = 'compresores.datos'

    def _buscar_compresor(self, cr, uid, ids, context=None):
        auxpower = self.browse(cr, uid, id).power
        obj = self.pool.get('compresores.datos')
        ids = obj.search(cr, uid, [])
        res = obj.read(cr, uid, ids, ['name', 'id', 'comp_a1','comp_a2'], context)
        res = [(r['id'], r['name'], r['comp_a1'],r['comp_a2']) 
        for r in res 
            if (r['comp_a1'] >= auxpower)]
        return res

    _name = "demo_datos"
    _description = "Demo"
    _columns = {
        'power': fields.float('Potencia frigorifica',digits=(3,2)),
        'compresor1': fields.selection(_buscar_compresor,method="True", type="char", size=256, string="Compresor" ),

    }

demo()

这是 XML

        <record model="ir.ui.view" id="demo_form">
            <field name="name">demo.form</field>
            <field name="model">demo_datos</field>
            <field name="arch" type="xml">
                <form string="DEMO" version="7.0">
                    <group col='4' colspan='2'>
                        <field name="power" class="oe_inline" />
                        <field name="compresor1" />
                     </group>
                </form>
            </field>
        </record>

        <record model="ir.ui.view" id="demo_tree">
            <field name="name">demo.tree</field>
            <field name="model">demo_datos</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="DEMO general">
                    <field name="power" />
                </tree>
            </field>
        </record>

我的类(class)有power 字段。我需要一个函数来比较另一个类 (comp_a1) 中的字段是否更高并返回该类的寄存器。

我使用 self.pool.get 来调用其他类,它没问题并且可以工作。但是当我在同一个函数中使用 self.browse 读取字段 power(使用 auxpower)时,我认为参数有问题......我该怎么办?

最佳答案

fields.selection

允许用户在各种预定义值之间进行选择的字段。

语法:

fields.selection([('value','display'), ('value','display')],
                   'Title' [, Optional Parameters]),

选择参数的格式:以下形式的字符串元组列表:

[('value', 'display'),('value', 'display'),('value', 'display')]

注意

_inherit = 'compresores.datos'
_name = "demo_datos"

如果您想扩展/更新现有模型的功能,那么您可以使用_inherit,但是_name_inherit 将被创建为新的模型 _name 包含_inherit 模型的所有特征。

您应该按照以下方式更新您的代码,

class demo(osv.osv):

    _inherit = 'compresores.datos'

    def _buscar_compresor(self, cr, uid, ids, context=None):
        obj_comp = self.browse(cr, uid, ids[0], context=context)
        if obj_comp:
            auxpower = obj.power
        obj = self.pool.get('compresores.datos')
        ids = obj.search(cr, uid, [])
        res = obj.read(cr, uid, ids, ['name', 'id', 'comp_a1','comp_a2'], context)
        dict = [(r['id'], r['name']) for r in res if (r['comp_a1'] >= auxpower)]
        return dict

    _columns = {
        'power': fields.float('Potencia frigorifica',digits=(3,2)),
        'compresor1': fields.selection(_buscar_compresor,method="True", type="char", size=256, string="Compresor" ),

    }

demo()

关于python - 计算字段自己的类和不同的类? - Openerp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809382/

相关文章:

python - 如何从我的 Python 主函数返回多个字典

php - 在 PHP 中,如何根据带引号的子字符串将字符串分开?

python - 使用 XPath 解析定义列表的最佳方法是什么?

Python:为什么我不能将元组解包到字典中?

javascript - 如何重新排列这些缓动函数以接受 v0、v1 和 t?

c - 函数分配给C中的变量

java - 按日期排序。比较器。 java

linux - 将完整的 bash 脚本行传递给另一个 bash 函数以执行

python - 输入数据未定义

python - 从映射列表中取出所有值