Django 评论
在开始之前,请注意,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',)
获取站点ID –
>>> from django.contrib.sites.models import Site
>>> Site().save()
>>> Site.objects.all()[0].id
u'56194498e13823167dd43c64'
设置在settings.py文件中获取到的id –
SITE_ID = u'56194498e13823167dd43c64'
同步数据库,创建所有评论表或集合 −
python manage.py syncdb
将评论app的URL添加到你的项目的urls.py中−
from django.conf.urls import include
url(r'^comments/', include('django.contrib.comments.urls')),
现在我们已经安装好了框架,让我们将我们的hello模板更改为跟踪对我们的Dreamreal模型的评论。我们将列出和保存特定Dreamreal条目的评论,其名称将作为参数传递给/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 %}
最终将URL映射到我们的hello视图 –
url(r'^hello/(?P<Name>\w+)/', 'hello', name = 'hello'),
现在
- 在我们的模板(hello.html)中,使用以下代码加载评论框架- {% load comments %}
-
我们通过视图传递Dreamreal对象,获取评论数量- {% get_comment_count for dreamreal as comment_count %}
-
我们获取对象的评论列表- {% render_comment_list for dreamreal %}
-
我们显示默认的评论表单- {% render_comment_form for dreamreal %}
当访问/myapp/hello/steve时,你将获得Dreamreal条目(名为Steve)的评论信息。访问该URL将获取如下结果-
发表评论后,您将被重定向到以下页面-
如果你再次访问/myapp/hello/steve ,你将看到以下页面−
如你所见,现在评论数为1,并且你在评论列表行的下方有评论。