In meinem Modul habe ich folgendes many2one Feld: 'xx_insurance_type': fields.many2one('xx.insurance.type', string='Insurance')
odoo - Anzeigename many2one Feldkombination aus 2 Feldern
wo xx.insurance.type
ist die folgende:
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 %')
}
Ich weiß, dass das many2one Feld Takes Name Feld als sein Anzeigename, aber ich möchte es die Kombination name
und insurance_percentage
in Form von name + " - " + insurance_percentage + "%"
Ich las es am besten ist es, die get_name
Methode zu überschreiben, so dass ich die folgenden versucht:
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
und platziert diese in der ÌnsuranceType` Klasse. Da nichts passiert ist: Muss ich es in der Hauptklasse, die das Feld enthält, platzieren? Wenn ja, gibt es eine andere Möglichkeit, dies zu tun, da dies wahrscheinlich auch die Anzeigewege der anderen many2one-Felder ändern wird?
der Name der Methode ist 'name_get' statt' get_name' – ChesuCR