Here's an example:
import mongoengine as me
me.connect('test')
class AgeField(me.IntField):
def validate(self, value):
if value < 0:
self.error('must be larger than zero')
class Person(me.Document):
age = AgeField()
try:
Person(age=-2).save()
except me.ValidationError:
pass
else:
1/0
p = Person(age=100).save()
Person.objects.update(set__age=-1)
print Person.objects()[0].age # prints -1
I found a nice solution for this, not sure if it's right though:
def prepare_query_value(self, op, value):
self.validate(value)
return super(AgeField, self).prepare_query_value(op, value)
Here's an example:
I found a nice solution for this, not sure if it's right though: