2009-06-03 8 views
0

Je publie un flux à partir d'une application Django.Publication de flux à l'aide de Django

J'ai sous-classé django.contrib.syndication.feeds.Feed, tout fonctionne bien, sauf la date qui n'est pas publiée sur le flux.

est ici la méthode que j'ai créé sur mon alimentation classe

 
def item_pubdate(self, item): 
    return item.date 

cette méthode est jamais appelé ....

Répondre

0

Je me suis cogné la tête contre celui-ci pendant un moment. Il semble que le système django rss nécessite un objet "datetime" au lieu de simplement la date (puisqu'il veut un fuseau horaire, et l'objet date n'a pas de temps, encore moins de fuseau horaire ...)

J'ai peut-être tort, mais c'est quelque chose que j'ai trouvé via les journaux d'erreurs.

0

C'est ainsi que le mien est la configuration, et il fonctionne.

class AllFeed(Feed): 
    def item_pubdate(self, item): 
     return item.date 
+0

code Teh semble identique, peut être il y a un bug sur le tronc django ... – lorenzov

+0

im usingthe tag 1.0.2. – phillc

+0

Ce code fonctionne bien pour moi aussi. –

3

Selon la documentation de Django Feed Class Reference, le champ item_pubdate est supposé renvoyer un objet datetime.datetime. Si item.date est simplement un champ DateField et non un champ DateTimeField, cela peut être à l'origine du problème. Si c'est le cas, vous pouvez changer la méthode pour faire un datetime, puis le retourner.

import datetime 
def item_pubdate(self, item): 
    return datetime.datetime.combine(item.date, datetime.time()) 
Questions connexes