Прежде чем начать, обратите внимание, что среда комментариев 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 даст вам —
После публикации комментария вы будете перенаправлены на следующую страницу —
Если вы снова перейдете в / myapp / hello / steve, вы увидите следующую страницу —
Как видите, количество комментариев теперь равно 1, и у вас есть комментарий под строкой списка комментариев.