у django feeds неверная дата публикации - PullRequest
0 голосов
/ 02 декабря 2010

У меня следующая проблема.

handlers.py API-интерфейса django-поршня проекта:

....
# "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")
 ...

теперь кажется, что это влияет на каналы проекта (созданные с помощью 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 == вторник), поэтому она недействительна.

Так что мне нужно, чтобы ответ поршня на API был на немецком языке (сделано). но pubDate ленты должен быть на английском языке (не знаю, как этого добиться).

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

Вы можете использовать модуль интернационализации Babel . Посмотрите здесь для функции format_date, которая форматирует дату и время в определенной локали.

0 голосов
/ 02 декабря 2010

это добилось цели. но я все еще открыт для других предложений:)

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
...