Этот вопрос немного старый, но я столкнулся с той же проблемой, и я думал, что будет обсуждать мое решение. Данный проект Django, очевидно, нуждается в средствах, зная обо всех его URL, и должен быть в состоянии сделать несколько вещей:
- карту из URL -> Вид
- карту с именем URL -> URL (затем 1 используется, чтобы получить представление)
- карту от имени вида -> URL (тогда 1 используется, чтобы получить представление)
Джанго решает эту задачу главным образом через объект, называемый RegexURLResolver
.
- RegexURLResolver.resolve (карта из URL -> Вид)
- RegexURLResolver.reverse
Вы можете получить ваши руки на одном из этих объектов следующим образом:
from my_proj import urls
from django.core.urlresolvers import get_resolver
resolver = get_resolver(urls)
Затем вы можете просто распечатать свои URL-адреса следующим образом:
for view, regexes in resolver.reverse_dict.iteritems():
print "%s: %s" % (view, regexes)
Это говорит о том, что решение Alasdair отлично подходит и имеет некоторые преимущества, поскольку оно выводит на экран некоторые из них, более приятные, чем этот метод. Но знать и получать информацию о объекте RegexURLResolver
- это что-то приятное для понимания, особенно если вас интересуют внутренности Django.
очень полезный скрипт, благодаря – RichVel