2017-04-12 5 views
2

フィールドが空である場合、方法をチェックインする方法はありますか。このコードがどのように正しく表示されるか。他のモジュールのOdooチェックフィールド

私の指摘を明確にしてください。

def method(self, vals): 
    if vals.get("field" == empty) 
    use my logic 
    if not empty use data that was already there. 
    and if that field is in other model , how can i reach it. 
+0

ここではvalsの種類は何ですか? – Cherif

答えて

2

これを試してみてください:

def method(self): 
    if vals.get("field_name", False): 
     # Code if is not empty 
    else: 
     # Code if is empty 
1

あなたは鍵がヴァルスにあるかどう最初にチェックするコードを、次のよう試すことができます。キーが使用可能な場合、チェック値が設定されます。フィールドが空でないとフィールドは、他のモデルである場合

def method(self, vals): 
    if vals.has_key('field') and not vals.get('field',False): 
     print "if logic" 
    else: 
     print "else logic" 

あなたはactive_modelで試してみてください。

あなたは記録を閲覧したり、他の操作を行うことができに基づいて、メソッドを呼び出してからコンテキストでactive_modelを渡すことができます。

例: WITH_CONTEXTユーザーを使用して

def method(self, vals): 
    if vals.has_key('field') and not vals.get('field',False): 
     print "if logic" 
    else: 
     model=self._context.get('active_model') 
     self.env[model].browse(model) 
     print "else logic" 

self.with_context({'active_model':'model'}).method(vals) 

を渡すことができコンテキスト値に基づいて、コンテキスト &あなたは簡単に動的にアクティブなモデルを得ることができます。

これはあなたを助けるかもしれません。

1
def method(self, vals): 
    if not vals.get('field'): 
     #if empty use your logic 
    else: 
     #if not empty use data that was already there. 
     #to print field value: 
     print vals['field'] 

      #and if that field is in other model , how can i reach it. 
     you may reach it by search that field in other model. 
関連する問題