首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Django Atom1Feed使用atom:updated而不是atom:Atom1Feed?

为什么Django Atom1Feed使用atom:updated而不是atom:Atom1Feed?
EN

Stack Overflow用户
提问于 2010-11-10 09:48:46
回答 1查看 488关注 0票数 4

我在Django中创建了一个Atom提要,它使用的类如下所示:

代码语言:javascript
复制
class AtomFeed(Feed):

    feed_type = feedgenerator.Atom1Feed

    # ...

    def item_pubdate(self, post):
        return datetime.datetime(post.date.year, post.date.month, post.date.day)

项的结果XML:

代码语言:javascript
复制
<entry>
  <title>..</title>
  <link href="..." rel="alternate"></link>
  <updated>2010-10-18T00:00:00+02:00</updated>
  <author><name>...</name></author>
  <id>...</id>
  <summary type="html">...</summary>
</entry>

这里要注意的是,日期在atom:updated元素中,而不是atom:published元素中。

RFC明确地向我建议,这不是预期的用途:

"atom:updated“元素是一个日期结构,它指示一个条目或提要以发行者认为重要的方式修改时的最新瞬间。因此,并不是所有的修改都必然导致一个更改的atom:更新的值。

鉴于:

“atom:已发布”元素是一个日期构造,表示与条目生命周期早期的事件相关联的瞬间。

这不仅仅是一个理论问题。例如,Google似乎没有使用updated元素,而是使用它第一次看到项目出现的日期。因此,在第一次导入提要时,它不会正确地订购这些项目。

Django的代码对此负责:

django/utils/feedgenerator.py:331

代码语言:javascript
复制
if item['pubdate'] is not None:
    handler.addQuickElement(u"updated", rfc3339_date(item['pubdate']).decode('utf-8'))

似乎没有提到published元素。

这是Django的窃听器吗?我是不是误解了Atom RFC?我是不是漏了什么东西?

EN

回答 1

Stack Overflow用户

发布于 2011-02-18 07:34:59

你什么都没错过。Atom RFC是正确的,这是Django中已知的一个bug;请参见这个Django虫

它看起来像一个相对简单的修补程序,所以您可以随意进入并修补它!^_^

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4143113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档