def 在 odoo 10 中使用 many2one 字段创建函数,python

def create function with many2one fields in odoo 10, python

我想根据我的资产标签和我的资产品牌来定义我的名字,但我的资产标签和资产品牌字段是 Many2one,它不会给我一个错误,但输出是错误的。它给了我一个数字,整数而不是字符串(这是标签名称加上品牌名称)。例如,我的预期结果是我的资产标签是 Computer,然后我的资产品牌是 Asus 那么我的预期结果名称将是 Computer-Asus。请帮忙。非常感谢。

我就是这样做的。

@api.model
def create(self,vals):
    if vals['asset_tag']:
        asset_tag = vals['asset_tag']
    else:
        asset_tag = ''

    if vals['asset_brands_id']:
        brand_id = vals['asset_brands_id']
    else:
        brand_id = ''

    name = "{}-{}".format(asset_tag, brand_id)

    vals['name'] = name
    return super(ModifiedAssetAsset, self).create(vals)

那么输出就是这样

它给了我 2-4 我的资产名称,但我的预期结果是 Vehicle-Toyota

  • 请试试这个代码,它对你有帮助
@api.model
def create(self,vals):
    if vals['asset_tag']:
        asset_tag = vals['asset_tag']
    else:
        asset_tag = ''

    if vals['asset_brands_id']:
        brand_id=self.env['asset.brand.model.name'].search([('id','=',vals
                 ['asset_brands_id'])],limit=1).name
    else:
        brand_id = ''
        name = "{}-{}".format(asset_tag, brand_id)
        vals['name'] = name
        return super(ModifiedAssetAsset, self).create(vals)@api.model