On Mon, Jul 21, 2008 at 4:12 PM, Amit Ramon <[EMAIL PROTECTED]> wrote:
> autodiscover() goes over INSTALLED_APPS and tries to import their admin 
> modules. When such a module isn't present, ImportError is caught and 
> consumed. However, if some admin module do exists, but for some reason it 
> throws an ImportError (e.g., it tries to load a non-existing module), it will 
> not be loaded and will not be seen in the admin interface, without any 
> significant notice. To me this seems like an undesired side-effect, perhaps 
> even a bug.

This is a well-known side effect of anything which needs to import
something which might not exist: it is nearly impossible to write
robust code that can correctly differentiate:

1. An ImportError raised by a non-existent module
2. A module which exists but whose initialization raises an ImportError

The solution is to test your code independently and ensure that it
functions correctly before attempting to use it (e.g., write a unit
test which attempts to import your admin declarations and fails if an
exception is raised in the process; if this test passes, you can rest
easy).



-- 
"Bureaucrat Conrad, you are technically correct -- the best kind of correct."

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to