Django feeds 发布日期错误

0 投票
2 回答
797 浏览
提问于 2025-04-16 07:56

我遇到了一个问题。

这是项目中 django-piston API 的 handlers.py 文件:

....
# "need" to set this for datetime.strftime()
locale.setlocale(locale.LC_TIME,'de_AT.UTF-8')

class ItemOverviewHandler(BaseHandler):
    ...
    @classmethod
    def date(self, item):
        # because of the setlocale() call the datestring is in german
        # that's good
        return item.somedatefield.date.strftime("%d. %B %Y")
 ...

现在似乎这个问题影响了项目的 feeds(这些是用 django.contrib.syndication 创建的):

def item_pubdate(self, item):
    return item.pub_date #datetime field
# the rss look's like this
# that's not good
<pubDate>Die, 17 Aug 2010 14:00:00 +0200</pubDate>

(这是一个符合 RFC 标准的日期,但用德语表示是 Die == Dienstag == 星期二),所以它是无效的。

我需要 piston API 的响应是德语的(这个已经完成了),但是 feed 的 pubDate 必须是英语的(我不知道该怎么做)。

有什么建议吗?

2 个回答

0

这个方法有效了。不过我还是欢迎其他建议哦 :)

class ItemOverviewHandler(BaseHandler):
    ...
    @classmethod
    def date(self, item):
        locale.setlocale(locale.LC_TIME,'de_AT.UTF-8')
        date_string = item.somedatefield.date.strftime("%d. %B %Y")
        locale.setlocale(locale.LC_TIME,'')
        return date_string
0

你可以使用Babel这个国际化模块。想了解如何使用format_date这个函数来根据特定地区格式化日期和时间,可以查看这里。

撰写回答