بخش های اصلی

آموزش Django

Django – Comments

قبل از شروع، در نظر داشته باشین که فریم ورکِ Comments مربوط به Django، از ورژنِ 1.5 منسوخ شده. امروزه می توانید برای انجام این کار از امکانات خارجی استفاده کنید ولی اگه هنوز هم میخواین از این فریم ورک استفاده کنین، باید بدانین که هنوز هم این فریم ورک از ورژن های 1.6 و 1.7 پشتیبانی می کنه. این فریم ورک در ورژنِ 1.8 وجود نداره ولی هنوز هم می توانید کد را از یک اکانتِ GitHub متفاوت به دست بیارین.

فریم ورک های comments اضافه کردن کامنت به تمام مدل ها در برنامه را آسان کردن.

برای شروع استفاده از فریم ورکِ comments مربوط به فریم ورک –

فایلِ settings.py را ویرایش کنین و 'django.contrib.sites' و 'django.contrib.comments' را به آپشنِ INSTALLED_APPS اضافه کنین.

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

site id را بگیرین:

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

مقدارِ id که گرفتین را در فایلِ settings.py تعیین کنین:

SITE_ID = u'56194498e13823167dd43c64'

Synchdb، برا ایجاد تمام توضیحاتِ جدول و collection:

python manage.py syncdb

کامنتِ URLهای برنامه را به فایلِ urls.py اضافه کنین:

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

حالا که فریم ورک را نصب کردیم، برای کنترل کامنت هایِ مدلِ Dreamreal، hello templates را تغییر میدیم. کامنت های ذخیره شده برای یکی از شرکت های ثبت شده در Dreamreal که نام آن بعنوان پارامتر به URL، /myapp/hello URL  پاس داده میشه، لیست می کنیم.

مدلِ Dreamreal

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

viewیِ hello

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

در پایان URL، map شده به viewیِ hello بصورت زیر خواهد بود:

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

اکنون،

  •  در templateمان (hello.html)، فریم ورکِ comments را بارگذاری می کنیم - {% load comments %}
  • تعدادِ commnetهای پروژه ی Dreamreal را که توسطِ view پاس داده شده اند را میگیریم - {% get_comment_count for dreamreal as comment_count %}
  •  لیستِ commnetهای پروژه را می گیریم - {% render_comment_list for dreamreal %}
  •  فرمِ commentهای پیش فرض را نمایش میدیم - {% render_comment_form for dreamreal %}

وقتی به /myapp/hello/steve برین، اطلاعات commnetها را برای یکی از شرکت های ثبت شده ی Dreamreal که نامَش Steve است در صفحه ی زیر  خواهید دید:

django comments example

هنگام post شدن comment، به صفحه ی زیر هدایت میشین  -

comments redirected page

اگه دوباره به /myapp/hello/steve برین، صفحه ای بصورت زیر خواهید دید –

number of comments

همان طور که می بینین، در حال حاضر تعداد comment ها 1 است و comment، زیر لیستِ خطِ commentها قرار داره.

مبحث آموزشی

آموزش Django

Learn Django

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد