I am using django feed framework. This is what I have in my feeds.py:
def item_pubdate(self, item):
return item.posted
This is what I have in my Blog class in models.py:
posted = models.DateField(db_index=True, auto_now_add=True)
And I get this attribute error:
'datetime.date' object has no attribute 'tzinfo'
See https://docs.djangoproject.com/en/dev/ref/contrib/syndication/ for the requirements of def item_pubdate. This is because most feed formats technically require a full timestamp as the publish date.
The function you define item_pubdate for a feed must return a python datetime.datetime object, not a datetime.date object. The difference being of course that the object can contain a specific time in addition to the date information.
Therefore, you must use models.DateTimeField instead of models.DateField.
--
If you are stuck using the models.DateField, then you can have your feed class do the conversion:
from datetime import datetime, time
def item_pubdate(self, item):
return datetime.combine(item.posted, time())
And that should get your date converted to a datetime so that contrib.syndication accepts it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With