0
我有標準的Django 1.4 URL模式:展開網址Django的模式
urlpatterns = patterns('',
url('^',include('events.urls')),
url(r'^$', home, {'template_name':'index.html','mod':None}, name='home'),
url(r'^contact$',contact, {'template_name':'index.html',
'mod':'contacto'},name='contact'),
url('^task/(?P<task_id>[\w+-]+)',celery_tasks,name='tasks'),
)
我要建立我的sitemap.xml留出一些URL,例如說/任務URL不應該出現(它是沒有意義的網絡蜘蛛)。 我的策略是通過所有的URL模式到我的網站導航類,像這樣
from sitemaps import EventsSitemap, StaticSitemap
sitemaps = {
'Events': CandidateSiteMap,
'static': StaticSitemap(urlpatterns),
}
正如你可以看到i'm傳遞模式的課,所以我可以在以後過濾的網址這樣
class StaticSitemap(Sitemap):
def __init__(self, patterns):
self.patterns = patterns
self._items = {}
self._initialize()
def _initialize(self):
do_not_show = ['tasks']
for p in self.patterns:
# no dynamic urls in this class (we handle those separately)
if not p.regex.groups:
if getattr(p,'name',False) and p.name not in do_not_show:
self._items[p.name] = self._get_modification_date(p)
所以我一直do_not_show URL名稱和多數民衆贊成我如何篩選出該URL列表,到目前爲止好,問題是包括網址,如:
url('^',include('events.urls')),
我不能只是迭代self.patterns並獲得包含的網址,我必須先擴展它們,那是我的問題,我該怎麼做? 我怎樣才能得到一個單位的網址列表,就好像沒有包含的網址一樣,都在單個的url模塊上。
任何建議,以過濾掉sitemaps.xml中的網址將不勝感激。