URL配置:
from blog.feeds import RssSiteNewsFeed
urlpatterns = [
url(r'^rss.xml$', RssSiteNewsFeed()),
]
feeds模块:
#!/use/bin/env python
# _*_ coding:utf-8 __
from django.contrib.syndication.views import Feed
from .models import Article
from django.utils.feedgenerator import Rss201rev2Feed
class CorrectMimeTypeFeed(Rss201rev2Feed):
mime_type = 'application/xml'
class RssSiteNewsFeed(Feed):
feed_type = CorrectMimeTypeFeed
author_name = ""
title = ""
link = ""
description = ""
def items(self):
return Article.objects.all().order_by('-created_time')[:5]
def item_title(self, item):
return item.title
def item_link(self, item):
return '/article/%s' % item.url
然后就出现了一个奇怪的现象,
明明已经解析出来了xml内容,有两个问题:
浏览器明明说了是Content-Type:application/rss+xml; charset=utf-8
类型的文件,可是为什么显示的确实字符串呢?而不应该显示xml格式的内容。
Django의 문서를 보면 기본적으로 Feed_type은 RssUserland091Feed, Rss201rev2Feed 및 Atom1Feed의 세 가지 클래스만 지원합니다. 귀하의 코드는 Rss201rev2Feed에서 상속되는 사용자 정의 클래스를 사용하므로 root_attributes 및 add_root_elements 메소드를 구현해야 합니다. 자세한 내용은 사용자 정의 Feed 클래스를 참조하세요.