我要做的是在字段内调用一个参数帮助的函数:
class RouteLocation(models.Model):
_name = 'route.location'
time_change_comment = fields.Char()
def time_change_comment(self):
if self.time_change_comment:
return self.time_change_comment
else:
return "Something else"
time = fields.Datetime(help=time_change_comment(CAN't pass self here))
到目前为止,我试图用lambda做一点点,但我没有成功。
无论如何都要解决这种情况。谢谢你的时间:)
答案 0 :(得分:0)
首先快速解释,然后我认为解决问题的方法。
self
传递给方法,它会被隐含地传递。但是...... self
来调用方法(如self.method_name()
中所述),您可以将@classmethod
添加到time_change_comment
(BTW,可以你改变名称,以免它与上面的属性发生冲突?)但是你没有一个实例,你需要它来正确访问你的模型数据。self
?快速查看models.py和api.py,似乎models.MetaModel
和api.Meta
都没有models.BaseModel
中的初始化,所以@ criket_007说,使用__init__
是您的最佳选择
def __init__(self, pool, cr):
# remember we changer the function time_change_comment's name
self.time_change_comment.help = self.time_change_comment_fn()