sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af MongoEngine-dokumentklassemetoder til tilpasset validering og pre-save hooks

Tilpasset validering skal nu udføres af implementering af clean() metode på en 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()

Rediger: Når det er sagt, skal du være forsigtig med at bruge clean() som det hedder fra validate() før du validerer modellen baseret på reglerne i din modeldefinition.



  1. Mongo docker-billede kører ikke script efter oprettet

  2. Hvordan fungerer PubSub i BookSleeve/ Redis?

  3. Sådan genopretter du forbindelse til Redis-klient efter genstart/skalering af Redis-serveren

  4. PyMongo og Flasks Jsonify indeholder escape-skråstreger