Programar un RSS en Django

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.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: