Django - Disqus не распознает уникальный идентификатор

По сути, одни и те же комментарии Disqus появляются для каждого сообщения. Я читал о том, почему это происходит, но до сих пор не могу понять, что не так.

Вот что я вижу на своей странице: 1

А вот мой код шаблона:

{% block content %}
    <p> The post id is: {{ post_object.id}} </p>
    <p> The post URL: {{ post_object.get_absolute_url }}


    {# DISQUS #}
    <div id="disqus_thread"></div>
    <script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'MySiteName'; // required
    var disqus_identifier = '{{ post_object.id }}';
    var disqus_url = 'http://localhost:8000{{ post_object.get_absolute_url }}';
    var disqus_title = '{{ post_object.title }}';
    var disqus_developer = 1;        

/* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
{% endblock content %}

Визуализированный HTML:

<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'MySiteName'; // required
var disqus_identifier = '42';
var disqus_url = 'http://localhost:8000/post/42/';
var disqus_title = 'Test post';
var disqus_developer = 1;

/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

Как видите, disqus_identifier и disqus_url уникальны. Что здесь происходит?

Любые идеи или отзывы помогут! Спасибо!


РЕДАКТИРОВАТЬ: Хорошо, я понимаю, откуда взялась проблема. После публикации комментария к сообщению, расположенному, скажем, по адресу http://localhost:8000/post/42/, Disqus добавляет к администратору Disqus (на вкладке «Обсуждения») ссылку на сообщение как http://localhost:8000/post.

Это даже не действительный URL на моей странице. Когда я явно меняю ссылку на http://localhost:8000/post/42/, она сохраняется. Однако во вновь созданном посте по-прежнему будут отображаться комментарии от поста 42.

Мысли?


person chipperdrew    schedule 12.07.2013    source источник
comment
Как выглядит HTML-код визуализированного шаблона? Подставлены ли переменные так, как вы ожидаете?   -  person Alasdair    schedule 13.07.2013
comment
Хорошая мысль. Я добавил это выше, но похоже, что это должно быть.   -  person chipperdrew    schedule 13.07.2013
comment
Думаю, я понимаю, в чем заключаются мои проблемы. На сайте администратора Disqus на вкладке «Обсуждения» публикации назначается URL-адрес http://localhost:8000/post. Все сообщения расположены в http://localhost:8000/post/SOME_NUMBER, поэтому, поскольку все сообщения являются подмножествами домена /post, комментарии не являются уникальными для сообщения.   -  person chipperdrew    schedule 13.07.2013
comment
@chipperdrew, вы узнали, почему URL-адрес отображается как /post на вкладке "Обсуждения"? У меня такая же проблема, я потратил на это несколько часов, очень расстраивает   -  person dm03514    schedule 11.10.2013
comment
Можете попробовать на промежуточном сервере? Disqus может проверить ответ по указанному вами URL ...   -  person François Constant    schedule 14.10.2013
comment
См. Здесь: stackoverflow.com/ questions / 9475821 / (самый последний ответ, не принятый)   -  person François Constant    schedule 14.10.2013
comment
@ dm03514 Так и не понял. В итоге я отказался от Disqus, так как он меня очень расстраивал. Удачи тебе!   -  person chipperdrew    schedule 17.10.2013
comment
Следует ли тогда закрывать вопрос? Мы не сможем получить подтверждение ответа, если спрашивающий оставил вопрос?   -  person Joe    schedule 09.11.2013


Ответы (2)


Установите django-disqus и используйте его в своих шаблонах.

pip install django-disqus

Добавьте disqus в INSTALLED_APPS и поместите ключ api disqus в свои настройки:

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 %}

надеюсь это поможет.

person user937284    schedule 24.02.2015

Вместо этого вы можете попробовать использовать что-то вроде django-disqus, в котором используются простые теги шаблонов. для загрузки комментариев disqus. Все, что для этого нужно:

# for when using the development server 

{% load disqus_tags %}
{% disqus_dev %}

# for showing all comments of a thread in production

{% load disqus_tags %}
{% disqus_show_comments %}
person Jake Schmitz    schedule 02.12.2013