Django - Komentar

Sebelum memulai, perhatikan bahwa kerangka Komentar Django ditinggalkan, sejak versi 1.5. Sekarang Anda dapat menggunakan fitur eksternal untuk melakukannya, tetapi jika Anda masih ingin menggunakannya, fitur tersebut masih disertakan dalam versi 1.6 dan 1.7. Mulai versi 1.8 itu tidak ada tetapi Anda masih bisa mendapatkan kode di akun GitHub yang berbeda.

Kerangka komentar memudahkan untuk melampirkan komentar ke model apa pun di aplikasi Anda.

Untuk mulai menggunakan kerangka komentar Django -

Edit file project settings.py dan tambahkan 'django.contrib.sites', dan 'django.contrib.comments', ke opsi INSTALLED_APPS -

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

Dapatkan id situs -

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

Setel id yang Anda dapatkan di file settings.py -

SITE_ID = u'56194498e13823167dd43c64'

Sinkronkan db, untuk membuat semua tabel atau kumpulan komentar -

python manage.py syncdb

Tambahkan URL aplikasi komentar ke urls.py proyek Anda -

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

Sekarang kita telah memasang kerangka kerja, mari kita ubah templat halo kita untuk melacak komentar pada model Dreamreal kita. Kami akan membuat daftar, menyimpan komentar untuk entri Dreamreal tertentu yang namanya akan diteruskan sebagai parameter ke / myapp / hello URL.

Model 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"

halo lihat

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 template

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

Terakhir, pemetaan URL ke tampilan hello kita -

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

Sekarang,

  • Di template kita (hello.html), muat kerangka komentar dengan - {% load comments%}

  • Kami mendapatkan jumlah komentar untuk objek Dreamreal melewati tampilan - {% get_comment_count untuk dreamreal as comment_count%}

  • Kami mendapatkan daftar komentar untuk objek - {% render_comment_list for dreamreal%}

  • Kami menampilkan formulir komentar default - {% render_comment_form untuk dreamreal%}

Saat mengakses / myapp / hello / steve Anda akan mendapatkan info komentar untuk entri Dreamreal yang bernama Steve. Mengakses URL itu akan membuat Anda -

Saat memposting komentar, Anda akan diarahkan ke halaman berikut -

Jika Anda membuka / myapp / hello / steve lagi, Anda akan melihat halaman berikut -

Seperti yang Anda lihat, jumlah komentar sekarang adalah 1 dan Anda memiliki komentar di bawah daftar baris komentar.