2016-04-28 4 views
0

新しいモジュールを使用して既存のアプリケーションをカスタマイズしています。モジュールがインストールされ、フィールドが正しく表示され、正しく保存されます。問題は、私のカスタム制約が無視されることです。ここでOdoo 9フィールド検証付きモジュールをカスタマイズする

は私のmodels.pyファイルからの完全なコードです:右のトラックに私を置くためmokiSRBへ

@api.constrains("x_vend_account_ref") def test(self): return False

答えて

0

ありがとう:

# -*- coding: utf-8 -*- 

from openerp import models, fields, api 
import logging 
_logger = logging.getLogger(__name__) 
# class myfieldsinsaleorder(models.Model): 
#  _name = 'myfieldsinsaleorder.myfieldsinsaleorder' 

class partnercustomfields(models.Model): 
    _inherit = "res.partner" 

    def test(self): 
     return False 

    x_vend_account_ref = fields.Char(string="Our Account ID", 
            help='Our account number with this vendor.', 
            size=20) 
    _constraints = [(test,"Invalid Data",[x_vend_account_ref])] 
0

制約は次のように使用すべきです。 @ api.constrainsの彼の提案は正しいですが、私の目的の戻り値も間違っていました。

他のモジュールで@ api.constrainsの他の用途を見ると、UserErrorが発生しています。これは動作しますが、このメソッドは非推奨です。私が集めることができる最良の方法として、エラーを発生させる正しい方法はValidationErrorです。これにより、期待される結果が得られます。

@api.constrains('x_vend_account_ref') 
def customvalidation(self): 
    raise ValidationError('The Field Is Not valid') 
+0

この変更を加えても、モジュールをアンインストールして再インストールしても、値は受け入れられます。あなたの提案のおかげで、私は戻って、ドキュメントをチェックし、これも同様に試みただけでなく、運がない。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ " –

+0

サーバーを再起動しましたか?モデルやコントローラの変更には、再起動が必要です。 – mokiSRB

+0

私はサーバーを再起動しました。無効。いくつかのバリエーションを試しましたが、少なくとも変更が適用されたことを確認する例外がスローされましたが、まだ正しく機能するための制約を取得できませんでした。 –