我用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>
答案 0 :(得分:1)
Disqus旨在每页加载一个Disqus邮箱。 Disqus使用页面URL作为唯一标识符,并且只有一个Disqus嵌入可以与单个URL相关联。如果页面的源代码中存在多个Disqus嵌入,则只会加载一个嵌入。
reload the disqus embed有一种方法可以使用不同的标识符:
DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = "newidentifier";
this.page.url = "http://example.com/#!newthread";
}
});
但是,此方法仍然只用于每页一次嵌入。
答案 1 :(得分:1)
这已经解决但我想通过使用django-disqus来展示不同的方法。最后一行是为您提供特定页面/对象的正确注释的那一行。
安装django-disqus并在模板中使用它。
pip install django-disqus
将disqus添加到您的INSTALLED_APPS并将disqus api密钥放入您的设置中:
settings.py
INSTALLED_APPS = (
...
'disqus',
...
)
DISQUS_API_KEY = 'YOUR_SECRET_API_KEY'
DISQUS_WEBSITE_SHORTNAME = 'YOUR_WEBSITE_SHORTNAME'
在模板中使用disqus模板标签:
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 %}