Django RSS

Django帶有聚合feed生成框架。有了它,你可以創(chuàng)建RSS或Atom只需繼承django.contrib.syndication.views.Feed類。

讓我們創(chuàng)建一個訂閱源的應(yīng)用程序。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
from django.contrib.syndication.views import Feed
 from django.contrib.comments import Comment
 from django.core.urlresolvers import reverse
 class DreamrealCommentsFeed(Feed):
    title = "Dreamreal's comments"
    link = "/drcomments/"
    description = "Updates on new comments on Dreamreal entry."
    def items(self):
       return Comment.objects.all().order_by("-submit_date")[:5]
 
    def item_title(self, item):
       return item.user_name
 
    def item_description(self, item):
       return item.comment
 
    def item_link(self, item):
       return reverse('comment', kwargs = {'object_pk':item.pk})

在feed類, title, link 和 description 屬性對應(yīng)標準RSS 的<title>, <link> 和 <description>元素。

條目方法返回應(yīng)該進入feed的item的元素。在我們的示例中是最后五個注釋。

現(xiàn)在,我們有feed,并添加評論在視圖views.py,以顯示我們的評論?

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
from django.contrib.comments import Comment
 def comment(request, object_pk):
    mycomment = Comment.objects.get(object_pk = object_pk)
    text = '<strong>User :</strong> %s <p>'%mycomment.user_name</p>
    text += '<strong>Comment :</strong> %s <p>'%mycomment.comment</p>
    return HttpResponse(text)

我們還需要一些網(wǎng)址在myapp urls.py中映射 ?

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
from myapp.feeds import DreamrealCommentsFeed
 from django.conf.urls import patterns, url
 urlpatterns += patterns('',
    url(r'^latest/comments/', DreamrealCommentsFeed()),
    url(r'^comment/(?P\w+)/', 'comment', name = 'comment'),
 )

當訪問/myapp/latest/comments/會得到 feed ? feed

當點擊其中的一個用戶名都會得到:/myapp/comment/comment_id 在您的評論視圖定義之前,會得到 ? feed

因此,定義一個RSS源是 Feed 類的子類,并確保這些URL(一個用于訪問feed,一個用于訪問feed元素)的定義。 正如評論,這可以連接到您的應(yīng)用程序的任何模型。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清