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
我想根据我的资产标签和我的资产品牌来定义我的名字,但我的资产标签和资产品牌字段是 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