Voy a mostraros como añadir un sistema de subscripción a vuestra web Django. Es exactamente el mismo método que he usado en este blog. Toda la documentación oficial la podéis encontrar aquí.
Paso 1: Creamos el generador de contenido
Primero tenemos que crear un archivo .py donde queramos. Importaremos la clase Feed de Django, la clase con la que queramos hacer la sindicación (en este caso es Post) y cualquier otra clase que queramos utilizar.
from django.contrib.syndication.views import Feed
from poster.models import Post
from django.core.urlresolvers import reverse
Ahora creamos una clase que herede de la clase Feed y sobreescribiremos los métodos que creamos oportunos. Yo no los he sobreescrito todos, no es necesario.
class AllPost(Feed):
title = "Blog de Álvaro Hurtado"
link = "http://www.alvarohurtado.es/"
description = "Blog personal de Álvaro Hurtado."
def items(self):
return Post.objects.order_by('-publication_date')
def item_link(self, item):
return reverse("one_post", args=[item.slug])
def item_title(self, item):
return item.title
def item_description(self, item):
return item.content
def item_pubdate(self, item):
return item.publication_date
Los atributos title, link y description corresponden con el título de la web, con el enlace de la misma y una breve descripción. Son atributos del feed.
El método items debe devolver una lista de los objetos que queremos sindicar. En este caso son entradas del blog. Cada una de los otros métodos devuelve una parte diferente de la información. Podemos hacer las transformaciones que creamos necesarias a la información.
Paso 2: Le asignamos una URL
Ahora sólo nos queda asignarle una url a nuestro generador. Para ello, importamos la clase que hemos creado anteriormente:
from utility.feeds import AllPost
Y asignamos la url que queramos:
url(r'^rss/$', AllPost(), name="rss"),
Para comprobar que funciona, aquí os dejo el feed del blog: http://www.alvarohurtado.es/rss/.
… y ya está. Espero que les haya gustado este tutorial.