1
0
mirror of https://github.com/django/django.git synced 2025-06-09 21:49:13 +00:00

magic-removal: Fixed #1179 -- Models not in INSTALLED_APPS now raise ImportError

git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2406 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-02-27 05:17:08 +00:00
parent 42dec1ef75
commit b00a599720

View File

@ -24,8 +24,14 @@ class ModelBase(type):
if not bases or bases == (object,):
return type.__new__(cls, name, bases, attrs)
mod = attrs.pop('__module__')
# Raise ImportError if this model isn't in INSTALLED_APPS.
if re.sub('\.models$', '', mod) not in settings.INSTALLED_APPS:
raise ImportError, "INSTALLED_APPS must contain %r in order for you to use this model." % mod
# Create the class.
new_class = type.__new__(cls, name, bases, {'__module__': attrs.pop('__module__')})
new_class = type.__new__(cls, name, bases, {'__module__': mod})
new_class.add_to_class('_meta', Options(attrs.pop('Meta', None)))
new_class.add_to_class('DoesNotExist', types.ClassType('DoesNotExist', (ObjectDoesNotExist,), {}))