将Disqus添加到Django博客评论

l0n*_*178 4 django disqus django-rest-framework

我是python的新手,所以django.我建立了一个简单的博客,其模型包括"Entry"和"Author".现在,我被告知博客将使用"disqus"进行评论,因此我应该在后端提供一些标识符或站点ID,以便可以使用disqus.我无法弄明白该怎么做.虽然,我通过在Blogger上添加通用代码(由disqus提供)来查看其功能.

我的模特是:

class Author(models.Model):
    userName = models.CharField(max_length=50)
    displayName=models.CharField(max_length=100)
    email = models.EmailField()

    def __str__(self):             
        return self.displayName

class Entry(models.Model):
    title = models.CharField(max_length=255)
    body = MarkdownField()
    image=models.ImageField(upload_to='images',null=True,blank=True)
    category=models.ManyToManyField(Category)
    createdAt = models.DateTimeField(auto_now_add=True)
    updatedAt = models.DateTimeField(auto_now=True)
    authors = models.ManyToManyField(Author)
    publish=models.BooleanField(default=True)

    def __str__(self):             
        return self.title

    class Meta:
        verbose_name = "Blog Entry"
        verbose_name_plural = "Blog Entries"
        ordering = ["-createdAt"]
Run Code Online (Sandbox Code Playgroud)

我的观点是:

class EntryView(viewsets.ModelViewSet):
    queryset=Entry.objects.all()
    serializer_class=EntrySerializer
    lookup_field = 'title'
    paginate_by= 6

class AuthorView(viewsets.ModelViewSet):
    queryset=Author.objects.all()
    serializer_class=AuthorSerializer
Run Code Online (Sandbox Code Playgroud)

如何在我的博客中添加disqus?

sp_*_*mer 6

在disqus.com上注册并输入您的网站URL(https://www.example.com/)并将您的网站短名称作为examplename.

您需要更改这三个内容,即要加载注释的页面的规范URL,页面标识符和短名称.

标识符需要对每个页面都是唯一的,因此它可以是文章链接的随机数或slug,如下面的示例中所示.

使用您自己的值设置这样的东西:

this.page.url = 'https://www.example.com/blog/{{ article.url }}/';
this.page.identifier ='/{{ article.url }}/';
s.src = '//examplename.disqus.com/embed.js';
Run Code Online (Sandbox Code Playgroud)

然后你需要用你自己的代码替换下面的代码中的这三行,并添加你想要加载Disqus的代码:

<div id="disqus_thread"></div>
<script>

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/

var disqus_config = function () {
this.page.url = 'https://www.example.com/blog/{{ article.url }}/';
this.page.identifier ='/{{ article.url }}/';
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//examplename.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
Run Code Online (Sandbox Code Playgroud)

  • 为什么刚刚设置的变量被注释掉了?应启用此部分. (2认同)
  • 谢谢Yannic,你是对的.我已经编辑并启用了它! (2认同)