Учебники

Джанго — Комментарии

Прежде чем начать, обратите внимание, что среда комментариев Django устарела, начиная с версии 1.5. Теперь вы можете использовать внешнюю функцию для этого, но если вы все еще хотите использовать ее, она все еще включена в версии 1.6 и 1.7. Начиная с версии 1.8 его нет, но вы все равно можете получить код в другой учетной записи GitHub.

Каркас комментариев позволяет легко прикреплять комментарии к любой модели в вашем приложении.

Чтобы начать использовать структуру комментариев Django —

Отредактируйте файл settings.py проекта и добавьте «django.contrib.sites» и «django.contrib.comments» в параметр INSTALLED_APPS —

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

Получить идентификатор сайта —

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

Установите идентификатор, который вы получите в файле settings.py —

SITE_ID = u'56194498e13823167dd43c64'

Синхронизировать БД, чтобы создать все комментарии таблицы или коллекции —

python manage.py syncdb

Добавьте URL-адреса приложения комментариев в urls.py вашего проекта —

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

Теперь, когда у нас есть установленный фреймворк, давайте изменим наши привет-шаблоны, чтобы отслеживать комментарии к нашей модели Dreamreal. Мы будем перечислять, сохранять комментарии для конкретной записи Dreamreal, имя которой будет передано в качестве параметра в URL-адрес / myapp / hello.

Dreamreal Model

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"

привет вид

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())

шаблон 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 %}

Наконец, URL-адрес сопоставления с нашим привет-представлением —

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

Сейчас,

  • В нашем шаблоне (hello.html) загрузите структуру комментариев с помощью — {% load comments%}

  • Мы получаем количество комментариев для объекта Dreamreal, передаваемых представлением — {% get_comment_count для dreamreal as comment_count%}

  • Мы получаем список комментариев для объектов — {% render_comment_list для dreamreal%}

  • Мы отображаем форму комментариев по умолчанию — {% render_comment_form для dreamreal%}

В нашем шаблоне (hello.html) загрузите структуру комментариев с помощью — {% load comments%}

Мы получаем количество комментариев для объекта Dreamreal, передаваемых представлением — {% get_comment_count для dreamreal as comment_count%}

Мы получаем список комментариев для объектов — {% render_comment_list для dreamreal%}

Мы отображаем форму комментариев по умолчанию — {% render_comment_form для dreamreal%}

При доступе к / myapp / hello / steve вы получите информацию о комментариях для записи Dreamreal, которую зовут Steve. Доступ к этому URL даст вам —

Пример комментариев Django

После публикации комментария вы будете перенаправлены на следующую страницу —

Страница перенаправленных комментариев

Если вы снова перейдете в / myapp / hello / steve, вы увидите следующую страницу —

Количество комментариев

Как видите, количество комментариев теперь равно 1, и у вас есть комментарий под строкой списка комментариев.