Trong mô-đun của tôi có lĩnh vực many2one sau: 'xx_insurance_type': fields.many2one('xx.insurance.type', string='Insurance')
odoo - tên hiển thị của sự kết hợp lĩnh vực many2one của 2 lĩnh vực
nơi xx.insurance.type
như sau:
class InsuranceType(osv.Model):
_name='xx.insurance.type'
_columns = {
'name' : fields.char(size=128, string = 'Name'),
'sale_ids': fields.one2many('sale.order', 'xx_insurance_type', string = 'Sale orders'),
'insurance_percentage' : fields.float('Insurance cost in %')
}
Tôi biết lĩnh vực many2one mất Tên trường tên làm tên hiển thị của nó nhưng tôi muốn sử dụng tên này là kết hợp của name
và insurance_percentage
ở dạng name + " - " + insurance_percentage + "%"
Tôi đọc nó là tốt nhất để ghi đè lên các phương pháp get_name
vì vậy tôi thử như sau:
def get_name(self,cr, uid, ids, context=None):
if context is None:
context = {}
if isinstance(ids, (int, long)):
ids = [ids]
res = []
for record in self.browse(cr, uid, ids, context=context):
name = record.name
percentage = record.insurance_percentage
res.append(record.id, name + " - " + percentage + "%")
return res
và đặt này bên trong lớp ÌnsuranceType`. Vì không có gì xảy ra: Do i phải đặt nó bên trong những lớp học chính chứa lĩnh vực này? Nếu vậy, có cách nào khác để làm điều này vì điều đó có lẽ cũng sẽ thay đổi cách hiển thị của các trường many2one khác không?
tên của phương pháp này là 'name_get' thay vì 'get_name' – ChesuCR