From 7b293783191f24302a2b8dd0b579ae8b839aae79 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Mon, 13 Jun 2011 12:40:12 +0100 Subject: [PATCH] Fixes issue converting to mongo --- mongoengine/fields.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 5d5304ae..967ce834 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -394,7 +394,7 @@ class EmbeddedDocumentField(BaseField): return value def to_mongo(self, value): - if isinstance(value, basestring): + if not isinstance(value, self.document_type): return value return self.document_type.to_mongo(value) @@ -438,7 +438,8 @@ class ListField(ComplexBaseField): def prepare_query_value(self, op, value): if self.field: - if op in ('set', 'unset') and not isinstance(value, basestring): + if op in ('set', 'unset') and (not isinstance(value, basestring) + and hasattr(value, '__iter__')): return [self.field.prepare_query_value(op, v) for v in value] return self.field.prepare_query_value(op, value) return super(ListField, self).prepare_query_value(op, value)