On Mon, Mar 11, 2013 at 2:00 PM, jayhalleaux <jay.halle...@gmail.com> wrote: >>> Any ideas on question 1? how to use named urls in settings.py? >
The problem with having named URLs in settings.py (also some other places, models.py for instance) is that at this point, the URL resolving architecture has not yet been completed. There is a simple solution - you do not actually want the URL in settings.py at the time settings.py is parsed. When you actually want the URL, everything is properly set up. Therefore, you can use a simply lazy evaluation of your reverse call: from django.utils.functional import lazy from django.core.urlresolvers import reverse lazy_reverse = lazy(reverse, str) FOO_URL = lazy_reverse('mysite:my-named-url') The downside of lazy is that this url will get re-generated each time you access FOO_URL. There is a bit of magic for that too, you can memoize the result: from django.utils.functional import lazy, memoize from django.core.urlresolvers import reverse _reverse_memo_cache = { } lazy_memoized_reverse = memoize(lazy(reverse, str), _reverse_memo_cache, 1) FOO_URL = lazy_memoized_reverse('mysite:my-named-url') Cheers Tom -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.