2017-09-05 61 views
2

在我的自定義模塊中,我添加了[odoo10]如何在odoo警告發生時保存記錄?

application_no = fields.Char(string="Application Number")字段。

_sql_constraints = [ 
('application_no_unique', 
'UNIQUE(application_no)', 
"Application Number already exist.Please specify another number or make sure the application number is correct"), 

]

我用SQL約束到了警告。

它工作正常,當我們進入重複申請號它會顯示被阻止

問題


如何保存記錄,同時警告,會警告並保存記錄的訪問? ?


我認爲SQL約束無法滿足這一點。 是否具有此功能的其他方法?

+1

您可以使用python約束。它可以讓你編寫自己的邏輯。注意:返回「False」表示不允許保存,「True」表示允許保存。這將幫助你https://odedrabhavesh.blogspot.in/2014/12/how-to-create-constraints-in-openerp.html –

+2

即使它是重複的,你需要保存該值嗎? – Zety

+0

@ WalR:是的,我需要保存它重複的值並顯示警告 – aslamsha22

回答

5

我認爲它可以幫助你使用一個onchange方法:

@api.onchange('your_field') 
def your_onchange(self): 
    count=self.search_count([('your_field','=',self.your_field)]) 
    return { 
     'warning': {'title': _('Warning'), 'message': _('Warning message'),}, 
     } 

這將顯示你的消息,你可以保存沒有問題。我希望這對你有所幫助。

+3

您不需要'@api.multi'。在前面的示例中,self對應於當前在表單上編輯的記錄。取自http://odoo-new-api-guide-line.readthedocs.io/en/latest/decorator.html#api-onchange。 – Zety

+0

我編輯了我的答案。謝謝;) – Dayana

+0

歡迎您 – Zety