From 520051af25934b577647bd88fd869a275cf65b13 Mon Sep 17 00:00:00 2001 From: Adam Parrish Date: Wed, 11 Jan 2012 16:41:39 -0800 Subject: [PATCH] preparing values in a ListField won't mangle embedded documents any more --- mongoengine/fields.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 14fcca01..13b7ed8e 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -8,7 +8,7 @@ import uuid from bson import Binary, DBRef, SON, ObjectId from base import (BaseField, ComplexBaseField, ObjectIdField, - ValidationError, get_document) + ValidationError, get_document, BaseDocument) from queryset import DO_NOTHING, QuerySet from document import Document, EmbeddedDocument from connection import get_db, DEFAULT_CONNECTION_NAME @@ -497,6 +497,7 @@ class ListField(ComplexBaseField): def prepare_query_value(self, op, value): if self.field: if op in ('set', 'unset') and (not isinstance(value, basestring) + and not isinstance(value, BaseDocument) and hasattr(value, '__iter__')): return [self.field.prepare_query_value(op, v) for v in value] return self.field.prepare_query_value(op, value)