Python 如何在Odoo表单中自动填写内容?
如何使“上次加注详细信息”字段呈现所选各油箱的最新Python 如何在Odoo表单中自动填写内容?,python,python-2.7,odoo-8,odoo,Python,Python 2.7,Odoo 8,Odoo,如何使“上次加注详细信息”字段呈现所选各油箱的最新升和日期。例如,如果我选择油箱A,我应该会在表格上看到最后一次加注日期的自动加注,以及以升为单位的数量。 我有两个等级fleet\u fuel\u tank和fleet\u tank\u log\u fuel 车队燃油箱类的代码段 车队燃料箱燃料等级代码 如何设置默认值 如果您使用的是旧api,则可以使用\u defaults字典设置默认值: def _get_default_notes(self, cr, uid, context=None)
升
和日期
。例如,如果我选择油箱A,我应该会在表格上看到最后一次加注日期的自动加注,以及以升为单位的数量。
我有两个等级fleet\u fuel\u tank
和fleet\u tank\u log\u fuel
车队燃油箱类的代码段
车队燃料箱燃料等级代码
如何设置默认值
如果您使用的是旧api,则可以使用\u defaults
字典设置默认值:
def _get_default_notes(self, cr, uid, context=None):
return 'Test note'
# [...]
_defaults = {
'location': 'Far away',
'notes': _get_default_notes,
}
尝试使用新api,因为这样会更容易。然后您应该像这样填充默认值:
class FleetFuelTank(models.Model):
liter = fields.Char(
string='Liters',
default=lambda self: self._get_default_liter(),
)
@api.model
def _get_default_liter(self):
return 4.5
如何触发onchange方法
如果要动态修改数据,可以使用onchange方法。我在这里向您展示一些示例:
旧API:
def变更数量(自身、cr、uid、id、产品id):
结果={
“产品数量”:0.00
}
# [...]
返回{'value':结果}
新API(xml视图中没有任何内容):
@api.one
@api.onchange(‘储罐标识’)
def onchange_储罐(自):
self.name='更改您要执行的操作'
您标记了Odoo V8,为什么到处都使用旧API?我只是好奇。这个视图是针对'fleet.tank.log.fuel'
模型的,你需要最后的升
和日期
,这个数据在前面的'fleet.tank.log.fuel'
或实际的'fleet.fuel.tank'
?嗨,@CZoellner我正在与一个使用它的团队合作。
def _get_default_notes(self, cr, uid, context=None):
return 'Test note'
# [...]
_defaults = {
'location': 'Far away',
'notes': _get_default_notes,
}
class FleetFuelTank(models.Model):
liter = fields.Char(
string='Liters',
default=lambda self: self._get_default_liter(),
)
@api.model
def _get_default_liter(self):
return 4.5