老版本的Django中自帶一個評論框架。但是從1.6版本后,該框架獨立出去了,也就是本文的評論插件。
這個插件可給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 評論對象
有兩種辦法:
1、直接引用評論對象。假設你的模板里已經有了一個叫做entry的評論對象,那么可以使用下面的方法獲得該對象的評論次數:
{% get_comment_count for entry as comment_count %}2、使用對象的類型和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="c{{ comment.id }}"></a> <a href="{% get_comment_permalink comment %}"> permalink for comment #{{ forloop.counter }} </a> ...{% endfor %}這塊內容在使用safari瀏覽器的時候可能有個bug。
新聞熱點
疑難解答