sql >> Databáze >  >> NoSQL >> MongoDB

Použití metod třídy MongoEngine Document pro vlastní ověření a před uložením

Vlastní ověření by nyní mělo provádět implementace clean() metoda na modelu .

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()

Upravit: To znamená, že musíte být opatrní při používání clean() jak je voláno z validate() před ověřením modelu na základě pravidel nastavených v definici vašeho modelu.



  1. 128bitové číslo úložiště redis

  2. Průvodce vývojáře k MongoDB Sharding

  3. Jak mohu serializovat pole chrono::DateTime jako ISODate při použití prototypu ovladače Rust Mongo?

  4. Název pole ID entity ServiceStack