#13398 closed (invalid)
reverse() causes exception if run in views.py, outside of a view.
| Reported by: | cbarnell | Owned by: | nobody |
|---|---|---|---|
| Component: | Uncategorized | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Running reverse('my_url_conf_name') inside of views.py will raise ViewDoesNotExist exception.
Example:
# myproject.apps.someapp.views.py
from django.core.urlresolvers import reverse
foo_url = reverse('foo_view')
def spam_view():
return HttpResponse('Hello World')
# Running any view in this module will raise something like:
# "Tried spam_view in module myproject.apps.someapp.views. Error was: 'module' object has no attribute 'spam_view'"
# Notice that 'spam_view' isn't even the view I passed in, and in fact if I delete the call to reverse() I can visit the 'spam_view' and it works fine.
# If I put the call to reverse('foo_view') inside of a view, and visit that view to render the url out to a page, it works just fine.
Note:
See TracTickets
for help on using tickets.
Update: Whatever views.py module you do this in, the exception will state the last view in that module.