Esto es algo que también estoy usando en este blog. Cuando abrí el blog (que posteriormente abandonaría) me programé mi propio módulo de comentarios. Esta vez he decidido ser pragmático y usar lo que Django me ofrecía. Y el resultado ha sido muy satisfactorio.
Tiene innumerables ventajas: es fácil de usar, se pueden añadir comentarios a cualquier clase que queramos y, por supuesto, podemos personalizar las plantillas de formularios y de respuestas. Además lo tenéis todo perfectamente documentado aquí. Comencemos:
####Paso 1: Instalamos la aplicación
Simplemente nos vamos al settings.py de nuestro proyecto y añadimos la aplicación de commentarios a las INSTALLED_APPS. Basta con añadir:
'django.contrib.comments',
####Paso 2: Actualizamos la base de datos
La aplicación de comentarios creará un par de tablas. Simplemente ejecutamos:
%> python manage.py syncdb
####Paso 3: Mapeamos sobre una url
Tenemos que añadir una url que será destinada a la aplicación de comentarios. Abrimos nuestro fichero de urls.py (el que queramos) y agregamos una url como esta:
urlpatterns = patterns('',
...
(r'^comentarios/', include('django.contrib.comments.urls')),
...
)
####Paso 4: Lo utilizamos
Ya sólo nos queda añadir los formularios para enviar comentarios y mostrarlos dónde corresponda. Para ello, vamos a utilizar las Template Tags que Django nos proporciona.
Para empezar, en cada plantilla en la que vayamos a utilizar las Template Tags hay que cargarlas. Simplemente tenemos que hacer la siguiente llamada:
{% load comments %}
Para renderizar el formulario del comentario podemos utilizar:
{% render_comment_form for [object] %}
Donde [object] lo podemos sustituir por cualquier objeto. En este caso, por post.
Para mostrar un listado de comentarios utilizaremos:
{% render_comment_list for [object] %}
Donde [object] lo podemos sustituir por cualquier objeto y nos mostrará todos los comentarios vinculados a ese object.
Y así de sencillo con todo. Podéis ver el resto de Template Tags en la documentación (aquí).
Por último, si queréis modificar las plantillas con las que se renderizan los comentarios, los formularios… teneís que incluir las plantillas comment/list.html, comment/form.html… en vuestro directorio de templates.
Así de sencillo. Espero que os sea de utilidad.