From 069aedabc1a7fd6cdb7aed6196ee0aad43457560 Mon Sep 17 00:00:00 2001 From: Thomas Steinacher Date: Mon, 17 Jun 2013 11:15:45 -0700 Subject: [PATCH] IntField: Automatically convert strings to integers --- mongoengine/fields.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index ec206d0..57c4154 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -149,6 +149,9 @@ class IntField(BaseField): self.min_value, self.max_value = min_value, max_value super(IntField, self).__init__(**kwargs) + def from_python(self, value): + return self.prepare_query_value(None, value) + def validate(self, value): try: value = int(value) @@ -161,6 +164,12 @@ class IntField(BaseField): if self.max_value is not None and value > self.max_value: self.error('Integer value is too large') + def prepare_query_value(self, op, value): + if value is None: + return value + else: + return int(value) + class FloatField(BaseField): """A floating point number field.