In RegexURLPattern._get_callback, we attempt to fetch the callable named by
the URL pattern, and catch a possible ImportError if this fails. If so, we
raise ViewDoesNotExist.

        try:
            self._callback = get_callable(self._callback_str)
        except ImportError, e:
            mod_name, _ = get_mod_func(self._callback_str)
            raise ViewDoesNotExist("Could not import %s. Error was: %s" %
(mod_name, str(e)))

The trouble is that the view we're importing may indeed exist, and may
*itself* make a failed import (say of a model, or some library function), in
which case ViewDoesNotExist becomes a badly misleading exception name, and
the resulting traceback is cut unhelpfully short. I've noodled a bit trying
to come up with a patch, but been stymied by the lack of information bubbled
up by python's ImportError extension (at least in 2.6).

Personally, I don't think catching ImportError/raising ViewDoesNotExist adds
much value (we do catch it once in contrib/admindocs/views), so unless we
can come up with a way to ensure that it only triggers when the top-level
import fails, I'd recommend eliminating it.

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

Reply via email to