如何为特定 class 添加条件以显示 res.partner 表单中 partner_id 除外的字段下拉列表
How to add condition for particular class to show field drop -down except partner_id from res.partner form
我想在我的模块中访问 res.partner 表单。但我希望在下拉列表中仅针对特定的 class,而不是客户 (partner_id) 它 'pet_name'。我应用了一个函数,它起作用了。但是,它适用于完整的 res.partner。但我不想要这个。那么,有谁能提供解决这个问题的方法或者条件吗?
我的代码在这里:
class customer_information(models.Model):
_inherit = "res.partner"
@api.multi
def name_get(self):
result = []
for record in self:
name = '['
if record.pet_name:
name += record.pet_name + ']' + ' ' + record.name
else:
name += '] ' + record.name
result.append((record.id, name))
return result
pet_name = fields.Char("Pet Name")
dog_cat = fields.Selection([('dog', 'Dog'), ('cat', 'Cat')], string="Dog/Cat")
species = fields.Many2one('species.pet', string="Species")
pet_size = fields.Selection([('large', 'Large'), ('medium', 'Medium'), ('small', 'Small')], string="Size")
class machine_weight(models.Model):
_name = 'machine.weight'
machine_id = fields.Many2one('sale.pet', string='Machine Weight', ondelete='cascade', index=True,
copy=False)
pet = fields.Many2one('res.partner')
weight = fields.Integer()
price = fields.Integer()
我们需要传递上下文并检查 name_get() 方法中的上下文键。如果我们获得该上下文,则触发您的逻辑,否则执行核心逻辑。
例如:
在XML端更新代码:
<field name="pet" context="{'need_pet': True}">
现在检查方法中的上下文键。
@api.multi
def name_get(self):
if self._context and self._context.has_key('need_pet'):
result = []
for record in self:
name = '['
if record.pet_name:
name += record.pet_name + ']' + ' ' + record.name
else:
name += '] ' + record.name
result.append((record.id, name))
return result
return super(customer_information, self).name_get()
我想在我的模块中访问 res.partner 表单。但我希望在下拉列表中仅针对特定的 class,而不是客户 (partner_id) 它 'pet_name'。我应用了一个函数,它起作用了。但是,它适用于完整的 res.partner。但我不想要这个。那么,有谁能提供解决这个问题的方法或者条件吗?
我的代码在这里:
class customer_information(models.Model):
_inherit = "res.partner"
@api.multi
def name_get(self):
result = []
for record in self:
name = '['
if record.pet_name:
name += record.pet_name + ']' + ' ' + record.name
else:
name += '] ' + record.name
result.append((record.id, name))
return result
pet_name = fields.Char("Pet Name")
dog_cat = fields.Selection([('dog', 'Dog'), ('cat', 'Cat')], string="Dog/Cat")
species = fields.Many2one('species.pet', string="Species")
pet_size = fields.Selection([('large', 'Large'), ('medium', 'Medium'), ('small', 'Small')], string="Size")
class machine_weight(models.Model):
_name = 'machine.weight'
machine_id = fields.Many2one('sale.pet', string='Machine Weight', ondelete='cascade', index=True,
copy=False)
pet = fields.Many2one('res.partner')
weight = fields.Integer()
price = fields.Integer()
我们需要传递上下文并检查 name_get() 方法中的上下文键。如果我们获得该上下文,则触发您的逻辑,否则执行核心逻辑。
例如:
在XML端更新代码:
<field name="pet" context="{'need_pet': True}">
现在检查方法中的上下文键。
@api.multi
def name_get(self):
if self._context and self._context.has_key('need_pet'):
result = []
for record in self:
name = '['
if record.pet_name:
name += record.pet_name + ']' + ' ' + record.name
else:
name += '] ' + record.name
result.append((record.id, name))
return result
return super(customer_information, self).name_get()