Bu soru biraz eski ama ben de aynı problemle karşılaştım ve çözümümü tartışacağımı düşündüm. Belli bir Django projesinin, tüm URL'leri hakkında bilgi sahibi olmak için bir araca ihtiyacı olduğu ve birkaç şeyi yapabilmesi gerektiği açıktır:
- url'den harita -> görüntüle
- adlandırılmış bir url'den harita -> url (daha sonra görünümü almak için 1 kullanılır)
- bir görünüm adından harita -> url (daha sonra görünümü almak için 1 kullanılır)
Django bunu çoğunlukla a adlı bir nesne aracılığıyla gerçekleştirir RegexURLResolver
.
- RegexURLResolver.resolve (bir url'den harita -> görünüm)
- RegexURLResolver.reverse
Ellerinizi aşağıdaki şekilde bu nesnelerden birine tutabilirsiniz:
from my_proj import urls
from django.core.urlresolvers import get_resolver
resolver = get_resolver(urls)
Ardından, URL'lerinizi aşağıdaki şekilde yazdırabilirsiniz:
for view, regexes in resolver.reverse_dict.iteritems():
print "%s: %s" % (view, regexes)
Bununla birlikte, Alasdair'in çözümü gayet iyi ve bu yöntemden daha güzel bazı şeyleri yazdırdığı için bazı avantajları var. Ancak bir RegexURLResolver
nesneyi bilmek ve elinize almak , özellikle Django'nun iç kısımlarıyla ilgileniyorsanız, bilmek güzel bir şeydir.