我在odoo上工作时遇到问题,问题是我想在某些视图触发时加载或调用函数
这是我的视图XML
<page string="Current Allocated" id="curent_book_id">
<field name='book_transactions_id' domain="[('name', '=', 'Odoo Basics')]">
<tree>
<!-- <field name="code">self.check_date()</field> -->
<field name="auto_date_check" invisible="1" />
<field name='from_date'/>
<field name='end_date'/>
<field name='students_id'/>
</tree>
</field>
</page>
和型号代码:
from_date = fields.Date(string='From Date',default=datetime.today())
current_status = fields.Boolean(default=True)
end_date = fields.Date(string='End Date')
books_id = fields.Many2many('library.books', ondelete='cascade', string="Book Name")
students_id = fields.Many2many('library.student',string='Student RollNo')
auto_date_check = fields.Char(compute='check_date', store=False)
@api.onchange('auto_date_check')
def check_date(self):
return {
'warning': {
'title': "Something bad happened",
'message': "It was very bad indeed",
}`enter code here`
}
答案 0 :(得分:0)
您可以尝试以下可能性:
如果您尝试在创建记录之前执行一种方法,请使用“ default_get()
”方法,这将是每次创建新记录时首先执行的方法。
或
如果每次加载视图时都试图执行方法,请确保Compute method
每次加载视图时都会计算字段的值。但是,如果将计算字段存储到数据库中,则只有在创建或更新/写入该记录时才会触发
或
如果您尝试执行方法,则在Odoo服务器启动时,请在对象中使用“ init ()”方法来执行任务。