注释
在开始之前,请注意,自1.5版本以来,不推荐使用Django Comments框架。 现在您可以使用外部功能,但如果您仍想使用它,它仍然包含在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
将评论应用的网址添加到项目的urls.py中 -
from django.conf.urls import include
url(r'^comments/', include('django.contrib.comments.urls')),
现在我们已经安装了框架,让我们更改我们的hello模板来跟踪Dreamreal模型上的注释。 我们将列出,保存特定Dreamreal条目的注释,该条目的名称将作为参数传递给/ myapp/hello URL。
梦幻模型
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 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 %}
最后是我们的hello视图的映射URL -
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时,您将获得名为Steve的Dreamreal条目的评论信息。 访问该URL将获得 -
发布评论后,您将被重定向到以下页面 -
如果再次访问/ myapp/hello/steve,您将看到以下页面 -
如您所见,评论数量现在为1,您在评论列表下面有评论。