gpt4 book ai didi

python - 如何更改 OpenERP (Odoo) 中 many2one 字段的显示值?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:52 24 4
gpt4 key购买 nike

我正在 Odoo (OpenERP) 上创建一个新模块,但我无法正确使用字段。

( http://i.stack.imgur.com/pKQpT.png )

我可以从另一个类(在同一模块中定义)中选择一个字段,但我需要更改显示的值。

在示例中,我为字段piatto 设置了字符串“menu,2”。这个字符串是从ordini类中获取的,有一个many2one字段,但我想显示名为nome的字段(如下图所示) ).

( http://i.stack.imgur.com/nQwRL.png )

这是 python 文件。

class menu(osv.Model):
_name = "menu"
_description = "Menu"
_order = "tipo"
_columns = {
'nome': fields.char('Nome', size=80, required=True),
'tipo': fields.selection([
('antipasto', 'antipasto'),
('primo', 'primo piatto'),
('secondo', 'secondo piatto'),
('contorno', 'contorno'),
('dolce', 'dolce')
], 'Tipo di piatto'),
'prezzo': fields.float('Prezzo', digits=(10,2), required=True),
'ingredienti': fields.text('Lista ingredienti'),
'immagine': fields.binary('Immagine'),
}
_sql_constraints = [('unique_name', 'unique(nome)', 'Il piatto è già presente.')]

class ordini(osv.Model):
_name = "ordini"
_description = "Ordini"
_columns = {
'dipendente': fields.many2one('hr.employee', 'Dipendente', ondelete='set null', required=True),
'dettagli_ids': fields.one2many('ordini.dettagli', 'n_ordine', 'Ordine'),
}

class ordini_dettagli(osv.Model):
_name = "ordini.dettagli"
_description = "Dettagli ordine"
_columns = {
'n_ordine': fields.integer('Ordine', readonly=True),
'piatto': fields.many2one('menu', 'Piatto'),
'qta': fields.integer('Quantità'),
'prezzo_piatto': fields.related('piatto','prezzo',type='float',string='Prezzo',readonly=True),
}
_defaults = {
'qta': 1,
}

编辑当我选择 piatto 条目时,我还需要更新字段 prezzo

谢谢。

最佳答案

您需要使用 _rec_name attribute 声明对象名称使用哪个字段.在你的情况下:

class menu(osv.Model):
_name = "menu"
_description = "Menu"
_order = "tipo"
_rec_name = 'nome'

# ...

或者,您可以将 nome 重命名为 name,因为 name_rec_name 的默认值。

关于python - 如何更改 OpenERP (Odoo) 中 many2one 字段的显示值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com