python - Django的rss库生成的xml为什么浏览器不解析呢?

 手机用户2602884231 发布于 2022-10-25 17:14

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内容,有两个问题:

  1. 浏览器明明说了是Content-Type:application/rss+xml; charset=utf-8类型的文件,可是为什么显示的确实字符串呢?而不应该显示xml格式的内容。

1 个回答
  • 看下Django的文档,默认情况下feed_type只支持RssUserland091Feed、Rss201rev2Feed、Atom1Feed这3个类。而你的代码使用了1个自定义的类,其继承自Rss201rev2Feed,因此需要实现root_attributes和add_root_elements方法,详细可以查看自定义Feed类

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有