📜  Django-评论

📅  最后修改于: 2020-10-25 10:05:14             🧑  作者: Mango


在开始之前,请注意,自1.5版本起,不建议使用Django Comments框架。现在您可以使用外部功能,但是如果您仍然想使用它,则它仍包含在1.6和1.7版中。从版本1.8开始,它已经不存在了,但是您仍然可以在其他GitHub帐户上获得代码。

评论框架使您可以轻松地将评论附加到应用程序中的任何模型。

要开始使用Django注释框架-

编辑项目settings.py文件,并将django.contrib.sitesdjango.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

将评论应用程序的URL添加到项目的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模板

{% extends "main_template.html" %}
{% load comments %}
{% block title %}My Hello Page{% endblock %}
{% block content %}

Our Dreamreal Entry:

Name : {{dreamreal.name}}

Website : {{dreamreal.website}}

Phone : {{dreamreal.phonenumber}}

Number of comments : {% get_comment_count for dreamreal as comment_count %} {{ comment_count }}

List of comments :

{% render_comment_list for dreamreal %} {% render_comment_form for dreamreal %} {% endblock %}

最后映射到我们的hello视图的URL-

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

现在,

  • 在我们的模板(hello.html)中,将注释框架加载为− {%load comments%}

  • 我们通过视图获取Dreamreal对象传递的评论数-{Dreamreal的%get_comment_count为comment_count%}

  • 我们获得了对象的注释列表-{%dreamreal%的render_comment_list}

  • 我们显示默认的注释表单-{%dreamreal%的render_comment_form}

访问/ myapp / hello / steve时,您将获得名称为Steve的Dreamreal条目的注释信息。访问该URL将使您-

Django注释示例

在发布评论时,您将被重定向到下一页-

评论重定向页面

如果再次进入/ myapp / hello / steve,您将看到以下页面-

评论数

如您所见,评论的数量现在为1,并且评论列表行下有该评论。