sql >> Database >  >> NoSQL >> MongoDB

MongoEngine gebruiken Documentklasse-methoden voor aangepaste validatie en pre-save hooks

Aangepaste validatie moet nu worden gedaan door het implementeren van de clean() methode op een model .

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

Bewerken: Dat gezegd hebbende, moet je voorzichtig zijn met het gebruik van clean() zoals het wordt aangeroepen vanuit validate() voordat u het model valideert op basis van de regels die zijn ingesteld in uw modeldefinitie.



  1. gradle build lokale werken. In docker-container niet. WAAROM?

  2. Hoe mongoDB te gebruiken met Solr?

  3. Problemen bij het publiceren/abonneren op een Mongo-geaggregeerde query

  4. Query met behulp van datumbereik in MongoDB in Java