django sitemap

Django Sitemaps y vistas "normales"



(2)

Tal vez no entendí el propósito de los Sitemaps o tal vez no entendí cómo usar los sitemaps. En este momento, mi mapa del sitio incluye todas las páginas creadas "dinámicamente", como las publicaciones del blog. Pero, ¿cómo agrego páginas "estáticas" como mi índice y página de contacto? ¿O no deberían estar estas vistas en el mapa del sitio? Pensé que todas las páginas deberían estar en el mapa del sitio. Por ejemplo, ¿cómo incluiría tal vista?

(r''^contact/'', include(''contact-recaptcha.urls'')),

si no hay queryset?

Para referencia: http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/

¡Gracias por adelantado!


Lo trato de esta manera:

Una clase abstracta para definir los atributos de la página estática.

class AbstractSitemapClass(): changefreq = ''daily'' url = None def get_absolute_url(self): return self.url

La clase de sitemap para páginas estáticas:

class StaticSitemap(Sitemap): pages = { ''home'':''/'', #Add more static pages here like this ''example'':''url_of_example'', ''contact'':''/contact/'', } main_sitemaps = [] for page in pages.keys(): sitemap_class = AbstractSitemapClass() sitemap_class.url = pages[page] main_sitemaps.append(sitemap_class) def items(self): return self.main_sitemaps lastmod = datetime.datetime(2010, 8, 31) #Enter the year,month, date you want in yout static page sitemap. priority = 1 changefreq = "yearly"

Use esto en el diccionario de mapas de sitio para usar en urls.py:

sitemaps = { ''main'':StaticSitemap, ''flatpages'':MyFlatPageSitemap, ''model'':PostSitemap, }


Otra alternativa más simple:

from django.core.urlresolvers import reverse from django.contrib.sitemaps import Sitemap class ViewSitemap(Sitemap): """Reverse ''static'' views for XML sitemap.""" def items(self): # Return list of url names for views to include in sitemap return [''homepage'', ''news_article_list'', ''contact_page''] def location(self, item): return reverse(item) sitemaps = {''views'': ViewSitemap}

He omitido deliberadamente lastmod y changefreq , ya que especificar datos incorrectos / supuestos es peor que no incluirlos.