2010-12-02 21 views
0

J'ai un problème suivant.django nourrit a une mauvaise date de publication

handlers.py de api de projet django-piston:

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

maintenant il semble que cela affecte les flux du projet (créé avec 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> 

(ce qui est une date de conformité rfc, MAIS en allemand Die == Dienstag == mardi), donc c'est invalide.

J'ai donc besoin que la réponse du piston api soit en allemand (terminé). mais pubDate du flux doit être en anglais (ne sais pas comment y parvenir).

Des suggestions?

Répondre

0

cela a fait l'affaire. mais im encore ouvert à d'autres suggestions :)

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

Est-ce que cela pourrait affecter d'une manière ou d'une autre une requête simultanée de votre flux dans le splitsecond que votre locale est définie sur autrichien (et donc votre flux n'est pas conforme RFC)? –

0

Vous pouvez utiliser le module d'internationalisation Babel. Regardez here pour la fonction format_date qui formate datetime avec un environnement local spécifique.