From 22a7ee58852ae5218d2197c6fd472c04176b150e Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Thu, 16 Jun 2011 09:47:44 +0100 Subject: [PATCH] Handle old named (referenced) docs Refs #199 --- mongoengine/base.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mongoengine/base.py b/mongoengine/base.py index 6d343682..49efba60 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -23,13 +23,20 @@ class ValidationError(Exception): _document_registry = {} def get_document(name): - if name not in _document_registry: + doc = _document_registry.get(name, None) + if not doc: + # Possible old style names + end = ".%s" % name + possible_match = [k for k in _document_registry.keys() if k.endswith(end)] + if len(possible_match) == 1: + doc = _document_registry.get(possible_match.pop(), None) + if not doc: raise NotRegistered(""" `%s` has not been registered in the document registry. Importing the document class automatically registers it, has it been imported? """.strip() % name) - return _document_registry[name] + return doc class BaseField(object):