在 from 视图中,允许增加 button ,并调用后台方法。
实现方式:在表单视图的 form 标签中,插入 header 标签,在 header 标签中,定义button ,并在当前模块中,定义后台方法,就像这样,type=object ,name = 后台方法名:
<!--Form View-->
<record id="view_zerone_books_form" model="ir.ui.view">
<field name="name">zerone.book.form</field>
<field name="model">zerone.book</field>
<field name="arch" type="xml">
<form string="Books">
<header>
<button name="action_borrow" type="object" string="借阅" class="btn-primary"
attrs="{'invisible': [('borrowed', '=', True)]}"/>
<button name="action_return" type="object" string="归还" class="btn-primary"
attrs="{'invisible': [('borrowed', '=', False)]}"/>
</header>
<sheet string="Books">
... ...
</sheet>
</form>
</field>
</record>
然后到后台定义方法:
class ZeroneBook(models.Model):
_name = "zerone.book"
... ...
def action_borrow(self):
self.borrowed = True
self.date_last_borrowed = fields.Datetime.now()
def action_return(self):
self.borrowed = False
self.date_last_borrowed = None