Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在odoo中获取以下情况的execute sql语句?_Python_Odoo - Fatal编程技术网

Python 如何在odoo中获取以下情况的execute sql语句?

Python 如何在odoo中获取以下情况的execute sql语句?,python,odoo,Python,Odoo,我有asset.asset我在那里添加了place1多个字段,我将通过此表单创建一些记录 我的要求是,当我在日历中选择任何位置时,我的下一个字段应仅获取与同一位置相关的记录 假设我在asset.asset中创建了 (一) 名称:A1, 地点:*卡纳塔克邦/古尔巴加/沙哈普 **资产类别id:*硬件 **区域id:*硬盘 **资产\u模型ID\u添加:qqqq(根据模型编号+品牌在其他类别或具有域过滤器的模型中预先定义) **对开本编号:**QQQSHAHAPUR(通过组合位置+assermode

我有asset.asset我在那里添加了place1多个字段,我将通过此表单创建一些记录

我的要求是,当我在日历中选择任何位置时,我的下一个字段应仅获取与同一位置相关的记录

假设我在asset.asset中创建了

(一) 名称:A1, 地点:*卡纳塔克邦/古尔巴加/沙哈普 **资产类别id:*硬件 **区域id:*硬盘 **资产\u模型ID\u添加:qqqq(根据模型编号+品牌在其他类别或具有域过滤器的模型中预先定义) **对开本编号:**QQQSHAHAPUR(通过组合位置+assermodelid添加自动填充)

(二) 名称:B1, 地点:*卡纳塔克邦/古尔巴加/杰瓦基, **资产类别id:*软件 **区域id:*os **资产_模型ID _添加:zzzzzz(根据模型号+品牌在其他类别或具有域过滤器的模型中预先定义) **对开本编号:*ZZZJEWARGI(通过组合位置+assermodelid添加自动填充)

我希望在日历中。事件继承类中,当我选择位置时,下一个字段应仅为该记录获取资产\u modelid\u add,即在许多字段中,如A1选择的下一个字段应仅获取卡纳塔克邦/gulbarga/shahapur,页码为QQQQShapur

class asset_asset(osv.osv):
        _inherit = "asset.asset"
        #_name = "asset_asset"
        _rec_name= "folio_num"
        _columns = {
            'name': fields.char('Asset Name', size=64),
            'place1': fields.many2one('asset.parentlocation', 'Location'),
            'asset_catg_id' : fields.many2one('asset.catg', 'Asset Catg Selection',select=True, required=True),
                'area_id' : fields.many2one('asset.name', 'Asset Name Selection', domain="[('asset_catg_id', '=', asset_catg_id)]", select=True, required=True),
            'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',domain="[('area_id', '=', area_id)]",),
            'folio_num' : fields.char('Folio No',),
            'asse_line':fields.one2many('asset.line','emp_id','Name Plate'),
            'asse_line2':fields.one2many('asset.part','emp_id1','Parts'),
                   #'assed_modelid':fields.many2one('agile.portfolio1','Asset Model ID',select=True, required=True),
            'quantity': fields.char('Quantity',size=64),
            'uom': fields.char('Uinit of Measure',size=64),
            'model_no' : fields.char('Model', size=64),

            #'asset_id':fields.many2one('agile.portfolio','Asset ID'),

        }
class asset_parentlocation(osv.osv):
    _name="asset.parentlocation"
    _rec_name="location_name"
    _columns = {
        'location_name' : fields.char('Asset Location', required=True),
        'parent_location' : fields.many2one('asset.parentlocation','Parent Location'),
        'nameee':fields.many2one('ir.attachment','Attachments'),}

    def name_get(self, cr, uid, ids, context=None):
        if context is None:
            context = {}
        if not ids:
            return []
        reads = self.read(cr, uid, ids, ['location_name','parent_location'], context=context)
        res = []
        for record in reads:
            name = record['location_name']
            if record['parent_location']:
                name = record['parent_location'][1]+' / '+name
            res.append((record['id'], name))
        return res
**calendar_event.py**
    class calendar_event(osv.osv):
        _inherit = "calendar.event"
        _rec_name = 'number'

        _columns = {
                'number' : fields.char('Meeting ID',readonly=1),

                'place' : fields.many2one('asset.parentlocation','Substation Location',),

                'assetmodelid_add' : fields.many2many('agile.portfolio1','Asset Model Code',),
                'folio_num' : fields.many2many('asset.asset','asset_asset_rel','super_id','asset_asset_id','Folio Num',),
                'inspection_name' : fields.many2many('asset1.inspection','asset1_inspection_rel','super_id','asset1_inspection_id','Inspection Type'),
    }

请更新有关SQL或OCHCHAGE的答案,两者都可以接受

让我们考虑一个简单的例子。假设我们有一个manyOne字段来生成产品(名称:Product\u id)。现在,我们希望根据类型选择框(名称:type)更改此manyOne字段的内容。现在,若我选择类型作为服务,那个么只有服务类型的产品应该在产品字段中可见

为了实现这一点,我们必须在类型选择框上定义on change函数

def onchange_type(self,cr,uid,ids, type,context=None):
    product_obj = self.pool.get('product.product')
    product_ids = product_obj.search(cr,uid, [('type','=',type)])
    return {'domain':{'product_id':[('id','in',product_ids)]}}
在您的情况下,您必须复制上述场景。。以上案例我在我的项目中使用过


谢谢,

我会尝试,但如何处理多个字段删除字段的列表将是多个字段如何像超级单词一样使用它嘿,你需要引用类的类和函数,它已经实现了。。例如:-res\u partner\u obj.functionName()我对解决方案不满意请重播我的答案确切地告诉我你的问题,你想在哪里使用超级单词?