Django contrib Comments 评论模块详解

这个插件可给models附加评论,因此常被用于为博客文章、图片、书籍章节或其它任何东西添加评论

一、快速入门

快速使用步骤:

安装包:pip install django-contrib-comments

在django的settings中的INSTALLED_APPS处添加'django.contrib.sites'进行app注册,并设置SITE_ID值。

在django的settings中的INSTALLED_APPS处添加'django_comments'.

运行manage.py migrate创建评论数据表。

在项目的根urls.py文件中添加URLs:url(r'^comments/', include('django_comments.urls')),

使用comment的模板标签,将评论嵌入到你的模板中。

1.1 comment模板标签

使用前请load标签:
{% load comments %}

1.1.1 评论对象

有两种办法:

直接引用评论对象。假设你的模板里已经有了一个叫做entry的评论对象,那么可以使用下面的方法获得该对象的评论次数:{% get_comment_count for entry as comment_count %}

使用对象的类型和id进行引用。比如,你知道一个blog的entry的id为14,那么可以这么做:{% get_comment_count for blog.entry 14 as comment_count %}

1.1.2 展示评论

使用render_comment_list或者get_comment_list 标签展示评论。

快速展示评论:
{% render_comment_list for [object] %}

这会使用插件里的comments/list.html模板来生成评论的html代码。

自定义展示评论:
{% get_comment_list for [object] as [varname] %}

实例:

{% get_comment_list for event as comment_list %}
{% for comment in comment_list %}
...
{% endfor %}

这种方式下,你可以自己控制comment的展示方式,例如添加css,js,结合bootstrap。

1.1.3 为评论添加超级链接

使用get_comment_permalink标签为评论添加永久的超级链接。
用法:
{% get_comment_permalink comment_obj [format_string] %}

默认情况下,url中的命名锚以字母“c”加评论id组成。例如: ‘c82’。当然,也可以通过下面的方式自定义:

{% get_comment_permalink comment "#c%(id)s-by-%(user_name)s"%}

使用的是python标准格式化字符串的方式。
不管你是否自定义也好,你都必须在模板的合适位置提供一个匹配命名锚的机制。例如:

{% for comment in comment_list %} <a name=http://www.likecs.com/"c{{ comment.id }}"></a> <a href=http://www.likecs.com/"{% get_comment_permalink comment %}"> permalink for comment #{{ forloop.counter }} </a> ... {% endfor %}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzxss.html