Django-댓글

시작하기 전에 Django Comments 프레임 워크는 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',)

사이트 ID 얻기-

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

settings.py 파일에서 얻은 ID를 설정하십시오-

SITE_ID = u'56194498e13823167dd43c64'

모든 주석 테이블 또는 컬렉션을 만들려면 db 동기화-

python manage.py syncdb

프로젝트의 urls.py에 댓글 앱의 URL을 추가하세요.

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

이제 프레임 워크가 설치되었으므로 Dreamreal 모델에 대한 주석을 추적하도록 hello 템플릿을 변경해 보겠습니다. 이름이 / myapp / hello URL에 매개 변수로 전달되는 특정 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"

안녕하세요보기

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 %}

마지막으로 hello 뷰에 대한 매핑 URL-

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

지금,

  • 템플릿 (hello.html)에서-{% load comments %}로 주석 프레임 워크를로드합니다.

  • 뷰를 통해 Dreamreal 객체 전달에 대한 댓글 수를 얻습니다 − {% get_comment_count for dreamreal as comment_count %}

  • 객체에 대한 주석 목록을 얻습니다-{% dreamreal %}에 대한 render_comment_list

  • 기본 댓글 양식을 표시합니다-{% dreamreal %에 대한 render_comment_form}

/ myapp / hello / steve에 액세스하면 이름이 Steve 인 Dreamreal 항목에 대한 설명 정보를 얻을 수 있습니다. 해당 URL에 액세스하면-

댓글을 게시하면 다음 페이지로 리디렉션됩니다.

/ myapp / hello / steve로 다시 이동하면 다음 페이지가 표시됩니다.

보시다시피 댓글 수는 이제 1 개이며 댓글 목록 아래에 댓글이 있습니다.