MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използване на методи на клас MongoEngine Document за персонализирано валидиране и предварително запазване на кукички

Персонализираното валидиране вече трябва да се извършва от прилагане на 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $sortByCount оператор за агрегиране

  2. Потребителското влизане не работи с node.js и mongoose

  3. MongoDB:какви са разликите между документи, записи и атрибути?

  4. mongodump от отдалечен възел - не може да се удостовери чрез механизъм SCRAM-SHA-256

  5. В MongoDB как мога да огранича заявката, когато моето обратно извикване е вътре в find?