Tweak to dereferencing

This commit is contained in:
Ross Lawley 2011-06-27 16:46:39 +01:00
parent 4036e9fe34
commit 84e611b91e

View File

@ -2,9 +2,10 @@ import operator
import pymongo import pymongo
from base import BaseDict, BaseList, get_document from base import BaseDict, BaseList, get_document, TopLevelDocumentMetaclass
from connection import _get_db from connection import _get_db
from queryset import QuerySet from queryset import QuerySet
from document import Document
class DeReference(object): class DeReference(object):
@ -65,7 +66,7 @@ class DeReference(object):
field_cls = getattr(getattr(field, 'field', None), 'document_type', None) field_cls = getattr(getattr(field, 'field', None), 'document_type', None)
references = self._find_references(v, depth) references = self._find_references(v, depth)
for key, refs in references.iteritems(): for key, refs in references.iteritems():
if field_cls: if isinstance(field_cls, (Document, TopLevelDocumentMetaclass)):
key = field_cls key = field_cls
reference_map.setdefault(key, []).extend(refs) reference_map.setdefault(key, []).extend(refs)
elif isinstance(item, (pymongo.dbref.DBRef)): elif isinstance(item, (pymongo.dbref.DBRef)):