为你的 Django 博客添加 Disqus 评论系统

2014/12/15 15:59 下午

首先,先去 Disqus 官网注册个账号啦.注册完账号之后去首页末尾
→API→Application,找到 DISQUS_API_KEY 一项,复制一下KEY,等下会用到。


安装 Disqus ,依官方推荐,使用pip自动安装~

sudo pip install django-disqus
若是没有 pip 也不用着急,去官方下载一份二进制包,然后解压,进入目录安装
python install setup.py

修改 setting.py ,在 INSTALLED_APPS 中添加 disqus 项并在文件末尾添加两项参数。其中一项就是刚才复制的KEY啦。

INSTALLED_APPS = (
     ...
     'disqus',
 )

 DISQUS_API_KEY = 'FOOBARFOOBARFOOBARFOOBARFOOBARF'
 DISQUS_WEBSITE_SHORTNAME = 'foobar'

通过Django Shell 执行以下命令。恩里面的domain和name改成你自己的就好啦。

$ python manage.py shell
Python 2.7.3 (default, Mar 18 2014, 05:13:23) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.sites.models import Site
>>> Site.objects.all()
[<Site: example.org>]
>>> s = Site.objects.all()[0]
>>> s.domain = 'foobar.com'
>>> s.name = 'foobar.com'
>>> s.save()
>>> Site.objects.all()
[<Site: foobar.com>]

我自己在这一步遇到了一个错误,执行Site.objects.all()的时候报错,提示


ProgrammingError: (1146, "Table 'Blog.django_site' doesn't exist")

这是由于没有安装django.sites模块造成的。
只需要在 INSTALLED_APPS 中添加这一模块然后 syncdb就好了。

INSTALLED_APPS = (
...
'django.contrib.sites'
'disqus',
)

python manage.py syncdb


修改模板文件,在指定位置添加 Disqus

{% load disqus_tags %}
{% disqus_show_comments %}
{% disqus_num_replies %}
{% disqus_recent_comments shortname num_items excerpt_length hide_avatars avatar_size %}

其中第一项必选,加载 disqus ,第二至第四项可选。

后三项分别是

  1. 显示评论
  2. 显示评论数
  3. 显示最近评论。

其中显示评论数是通过JS修改含data-disqus-identifier=“{{ object.id }}"属性的标签来显示的。所以记得加上哦。

以上,就是 Disqus 的安装啦