1

我用 django 创建了一个博客,并尝试使用 disqus 评论。我有一个类似的问题,我在其他问题中看到过,当我向任何条目(在单个条目页面上)发布评论时,它们都显示在主页上的一个条目下。

主要问题是在博客的主页上,我有多个条目,我只能让一个 disqus 评论框出现在一个条目上。当我查看源代码时,其他博客条目的 javascript 变量似乎正确显示,所以我不确定为什么评论框不会在其他博客条目下呈现。

我处于开发模式,所以我不确定这是否会有所作为......我也是一个菜鸟。

这是我为每个条目获得的 disqus javascript 的源代码......谁能帮我弄清楚为什么我不能让评论框呈现?

<div id="disqus_thread"></div>
<script type="text/javascript">
/* <![CDATA[ */

    var disqus_shortname = 'whometaxi';
    var disqus_developer = "1";
    var disqus_identifier = "3";
    var disqus_title = "Third";

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>

<div id="disqus_thread"></div>
<script type="text/javascript">
/* <![CDATA[ */

    var disqus_shortname = 'whometaxi';
    var disqus_developer = "1";
    var disqus_identifier = "1";
    var disqus_title = "First post";

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>

<script type="text/javascript">
/* <![CDATA[ */

    var disqus_shortname = 'whometaxi';
    var disqus_developer = "1";
    var disqus_identifier = "2";
    var disqus_title = "Second!";

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>
4

2 回答 2

1

Disqus 旨在每页加载一个 Disqus 邮箱。Disqus 使用页面 URL 作为唯一标识符,并且只有一个 Disqus 嵌入可以与单个 URL 关联。如果一个页面的源代码中存在多个 Disqus 嵌入,则只会加载一个嵌入。

有一种方法可以重新加载嵌入不同标识符的 disqus :

  DISQUS.reset({
  reload: true,
  config: function () {  
    this.page.identifier = "newidentifier";  
    this.page.url = "http://example.com/#!newthread";
  }
});

但是,这种方法仍然只用于每页一个嵌入。

于 2013-07-24T17:52:48.670 回答
1

这已经解决了,但我想通过使用 django-disqus 来展示一种不同的方法。最后一行是为您提供特定页面/对象的正确评论的行。

安装django-disqus并在模板中使用它。

pip install django-disqus

Add disqus to your INSTALLED_APPS and put your disqus api key in your settings:

settings.py

INSTALLED_APPS = (
    ...
    'disqus',
    ...
)

DISQUS_API_KEY = 'YOUR_SECRET_API_KEY'
DISQUS_WEBSITE_SHORTNAME = 'YOUR_WEBSITE_SHORTNAME'

Use disqus template tags in your templates:

some_template.html

# load the tags
{% load disqus_tags %}
# get comments for your website
{% disqus_show_comments "YOUR_WEBSITE_SHORTNAME" %}
# get the url for the current object to get the right comments
{% set_disqus_url object.get_absolute_url %}
于 2015-02-25T12:41:23.610 回答