Django - Comentarios

Antes de comenzar, tenga en cuenta que el marco de comentarios de Django está en desuso, desde la versión 1.5. Ahora puede usar una función externa para hacerlo, pero si aún desea usarla, todavía está incluida en la versión 1.6 y 1.7. A partir de la versión 1.8 está ausente, pero aún puede obtener el código en una cuenta de GitHub diferente.

El marco de comentarios facilita adjuntar comentarios a cualquier modelo en su aplicación.

Para comenzar a usar el marco de comentarios de Django:

Edite el archivo settings.py del proyecto y agregue 'django.contrib.sites'y 'django.contrib.comments', a la opción INSTALLED_APPS -

INSTALLED_APPS += ('django.contrib.sites', 'django.contrib.comments',)

Obtener la identificación del sitio -

>>> from django.contrib.sites.models import Site
>>> Site().save()
>>> Site.objects.all()[0].id
u'56194498e13823167dd43c64'

Establezca la identificación que obtiene en el archivo settings.py -

SITE_ID = u'56194498e13823167dd43c64'

Sync db, para crear toda la tabla o colección de comentarios -

python manage.py syncdb

Agregue las URL de la aplicación de comentarios al urls.py de su proyecto -

from django.conf.urls import include
url(r'^comments/', include('django.contrib.comments.urls')),

Ahora que tenemos el marco instalado, cambiemos nuestras plantillas de saludo para realizar un seguimiento de los comentarios en nuestro modelo Dreamreal. Enumeraremos, guardaremos los comentarios para una entrada específica de Dreamreal cuyo nombre se pasará como parámetro a la URL / myapp / hello.

Modelo Dreamreal

class Dreamreal(models.Model):

   website = models.CharField(max_length = 50)
   mail = models.CharField(max_length = 50)
   name = models.CharField(max_length = 50)
   phonenumber = models.IntegerField()

   class Meta:
      db_table = "dreamreal"

hola vista

def hello(request, Name):
   today = datetime.datetime.now().date()
   daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
   dreamreal = Dreamreal.objects.get(name = Name)
   return render(request, 'hello.html', locals())

plantilla hello.html

{% extends "main_template.html" %}
{% load comments %}
{% block title %}My Hello Page{% endblock %}
{% block content %}

<p>
   Our Dreamreal Entry:
   <p><strong>Name :</strong> {{dreamreal.name}}</p>
   <p><strong>Website :</strong> {{dreamreal.website}}</p>
   <p><strong>Phone :</strong> {{dreamreal.phonenumber}}</p>
   <p><strong>Number of comments :<strong> 
   {% get_comment_count for dreamreal as comment_count %} {{ comment_count }}</p>
   <p>List of comments :</p>
   {% render_comment_list for dreamreal %}
</p>

{% render_comment_form for dreamreal %}
{% endblock %}

Finalmente, la URL de mapeo a nuestra vista de saludo:

url(r'^hello/(?P<Name>\w+)/', 'hello', name = 'hello'),

Ahora,

  • En nuestra plantilla (hello.html), cargue el marco de comentarios con - {% load comments%}

  • Obtenemos la cantidad de comentarios para el objeto Dreamreal que pasan por la vista: {% get_comment_count para dreamreal as comment_count%}

  • Obtenemos la lista de comentarios de los objetos: {% render_comment_list for dreamreal%}

  • Mostramos el formulario de comentarios predeterminado: {% render_comment_form for dreamreal%}

Al acceder a / myapp / hello / steve, obtendrá la información de comentarios para la entrada de Dreamreal cuyo nombre es Steve. Al acceder a esa URL, obtendrá ...

Al publicar un comentario, será redirigido a la siguiente página:

Si vas a / myapp / hello / steve nuevamente, podrás ver la siguiente página:

Como puede ver, el número de comentarios es 1 ahora y tiene el comentario debajo de la línea de lista de comentarios.