sql >> データベース >  >> NoSQL >> MongoDB

カスタム検証と事前保存フックのためのMongoEngineDocumentクラスメソッドの使用

    カスタム検証は、によって実行されるようになりました。 clean()の実装 モデルのメソッド

    class Essay(Document):
        status = StringField(choices=('Published', 'Draft'), required=True)
        pub_date = DateTimeField()
    
        def clean(self):
            """
            Ensures that only published essays have a `pub_date` and
            automatically sets the pub_date if published and not set.
            """
            if self.status == 'Draft' and self.pub_date is not None:
                msg = 'Draft entries should not have a publication date.'
                raise ValidationError(msg)
    
            # Set the pub_date for published items if not set.
            if self.status == 'Published' and self.pub_date is None:
                self.pub_date = datetime.now()
    

    編集: とはいえ、clean()の使用には注意が必要です。 validate()から呼び出されます モデル定義で設定されたルールに基づいてモデルを検証する前。



    1. Laravel 4:クラス「MongoClient」が見つかりません

    2. ネストされたサブドキュメントmongodbの配列でフィールドを検索する方法は?

    3. mongodbで$lookupの後に$projectreturnnest配列を使用する方法

    4. MongoDBの既存の値をインクリメントする方法