2017-09-07 5 views
0

私は、接続をテストすることを目的としたボタンを備えたフォームビューを持っています。 接続が成功し、同時にフォームビューでいくつかの値を更新する場合は、メッセージを返す必要があります。メッセージを返して同時に値を更新する方法(ボタンから)

私は私の.pyファイルでこのような何かしている:

def test_connection(self):   
     connected = self.connect(self.ip_address, self.port) 
     if connected: 
      self.data1='a' 
      self.data2='b' 
     return True 

これまでのところ、私は唯一の値を更新することができましたが、私はメッセージで警告上げる場合:raise Warning(_('Connection OK.'))を、データが更新されていません。

フォームデータを更新すると同時に情報メッセージを表示する方法はありますか?このようなことを達成するための他の方法がありますか?

答えて

2

あなただけのいくつかの美しいCSSスタイルでのdivタグを追加するメッセージフィールドを定義する必要はありません。接続ステータスに応じて、attrsを使用して表示するか、非表示にします。 odooで

あなたが値を更新すると同時に、メッセージとして、ウィザードを返すことができ

+0

私はこれを試して、それは完全に働いた。ありがとう! – Dayana

2

raiseメッセージを使用するのではなく、ウィザードでmessageフィールドを定義することができます。

message = fields.Char('Message')  

def test_connection(self): 
    connected = self.connect(self.ip_address, self.port) 
    if connected: 
     self.update({data1: 'a', 
        data2: 'b', 
        message: 'Your Message'}) 
    return True 

あなたはそれが設定されたメッセージがある場合を除きinvisibleになるようにビューに表示することができます。

<field name="message" attrs="{'invisible': [('message', '=', False)]}"/> 

Views documentation

0

同じ時間に誤差および更新値を表示することはできません。それはいいと思います。 ant例外や警告を使用すると、サーバのフローがそこでブロックされるため、値が更新されず、同時に更新された値が取り消されます。

関連する問題