To install the patch, download the file 20091107.diff into you django's working copyand then type "patch -p0 < 20091107.diff", which should result in something like this:
(Stripping trailing CRs from patch.)
patching file django/db/models/loading.py
Yes I should write some test cases, when I have more time... for now I just write down the situation. I have a site with about 10 applications, and the models.py of one of them tries to import a non-existing module. This situation is stored in Lino 841 and igen 2.
Here is what happens without my patch:
T:\hgwork\igen\src\igen\demo>python manage.py validate
Traceback (most recent call last):
File "manage.py", line 16, in
execute_manager(settings)
File "l:\snapshot\django\django\core\management\__init__.py", line 440, in execute_manager
utility.execute()
File "l:\snapshot\django\django\core\management\__init__.py", line 380, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "l:\snapshot\django\django\core\management\base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "l:\snapshot\django\django\core\management\base.py", line 223, in execute
output = self.handle(*args, **options)
File "l:\snapshot\django\django\core\management\base.py", line 352, in handle
return self.handle_noargs(**options)
File "l:\snapshot\django\django\core\management\commands\validate.py", line 9, in handle_noargs
self.validate(display_num_errors=True)
File "l:\snapshot\django\django\core\management\base.py", line 250, in validate
num_errors = get_validation_errors(s, app)
File "l:\snapshot\django\django\core\management\validation.py", line 28, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "l:\snapshot\django\django\db\models\loading.py", line 131, in get_app_errors
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 58, in _populate
self.load_app(app_name, True)
File "l:\snapshot\django\django\db\models\loading.py", line 74, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\contacts\models.py", line 29, in
countries = models.get_app('countries')
File "l:\snapshot\django\django\db\models\loading.py", line 114, in get_app
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 58, in _populate
self.load_app(app_name, True)
File "l:\snapshot\django\django\db\models\loading.py", line 74, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\ledger\models.py", line 26, in
journals = reports.get_app('journals')
File "c:\drives\t\hgwork\lino\src\lino\reports.py", line 44, in get_app
m = models.get_app(app_label)
File "l:\snapshot\django\django\db\models\loading.py", line 125, in get_app
raise ImproperlyConfigured, "App with label %s could not be found" % app_label
django.core.exceptions.ImproperlyConfigured: App with label journals could not be found
Traceback (most recent call last):
File "manage.py", line 16, in
execute_manager(settings)
File "l:\snapshot\django\django\core\management\__init__.py", line 440, in execute_manager
utility.execute()
File "l:\snapshot\django\django\core\management\__init__.py", line 380, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "l:\snapshot\django\django\core\management\base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "l:\snapshot\django\django\core\management\base.py", line 223, in execute
output = self.handle(*args, **options)
File "l:\snapshot\django\django\core\management\base.py", line 352, in handle
return self.handle_noargs(**options)
File "l:\snapshot\django\django\core\management\commands\validate.py", line 9, in handle_noargs
self.validate(display_num_errors=True)
File "l:\snapshot\django\django\core\management\base.py", line 250, in validate
num_errors = get_validation_errors(s, app)
File "l:\snapshot\django\django\core\management\validation.py", line 28, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "l:\snapshot\django\django\db\models\loading.py", line 131, in get_app_errors
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 58, in _populate
self.load_app(app_name, True)
File "l:\snapshot\django\django\db\models\loading.py", line 74, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\contacts\models.py", line 29, in
countries = models.get_app('countries')
File "l:\snapshot\django\django\db\models\loading.py", line 114, in get_app
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 58, in _populate
self.load_app(app_name, True)
File "l:\snapshot\django\django\db\models\loading.py", line 74, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\ledger\models.py", line 26, in
journals = reports.get_app('journals')
File "c:\drives\t\hgwork\lino\src\lino\reports.py", line 44, in get_app
m = models.get_app(app_label)
File "l:\snapshot\django\django\db\models\loading.py", line 125, in get_app
raise ImproperlyConfigured, "App with label %s could not be found" % app_label
django.core.exceptions.ImproperlyConfigured: App with label journals could not be found
Which is a completely useless error message.
And here is what happens after applying my patch:
(...)
File "l:\snapshot\django\django\db\models\loading.py", line 156, in get_app
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 96, in _populate
len(self.postponed),msg))
django.core.exceptions.ImproperlyConfigured: Failed to import 3 applications:
lino.modlib.sales:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\sales\models.py", line 49, in
from lino.modlib.contacts import models as contacts
ImportError: cannot import name models
lino.modlib.finan:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\finan\models.py", line 32, in
from lino.modlib.contacts import models as contacts
ImportError: cannot import name models
lino.modlib.journals:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\journals\models.py", line 30, in
from lino.apps.documents import models as documents
ImportError: No module named apps.documents
self._populate()
File "l:\snapshot\django\django\db\models\loading.py", line 96, in _populate
len(self.postponed),msg))
django.core.exceptions.ImproperlyConfigured: Failed to import 3 applications:
lino.modlib.sales:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\sales\models.py", line 49, in
from lino.modlib.contacts import models as contacts
ImportError: cannot import name models
lino.modlib.finan:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\finan\models.py", line 32, in
from lino.modlib.contacts import models as contacts
ImportError: cannot import name models
lino.modlib.journals:
Traceback (most recent call last):
File "l:\snapshot\django\django\db\models\loading.py", line 112, in load_app
models = import_module('.models', app_name)
File "l:\snapshot\django\django\utils\importlib.py", line 35, in import_module
__import__(name)
File "c:\drives\t\hgwork\lino\src\lino\modlib\journals\models.py", line 30, in
from lino.apps.documents import models as documents
ImportError: No module named apps.documents
No comments:
Post a Comment