- Author:
- baumer1122
- Posted:
- July 12, 2007
- Language:
- Python
- Version:
- .96
- Score:
- 5 (after 5 ratings)
This is an inclusion tag that can be used to pull in posts from any feed to a template. It doesn't do any caching, so it may slow down page load times. Depends on Feedparser.
Template usage: {% pull_feed 'http://www.djangosnippets.org/feeds/latest/' 3 %}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @register.inclusion_tag('my_template.html')
def pull_feed(feed_url, posts_to_show=5):
feed = feedparser.parse(feed_url)
posts = []
for i in range(posts_to_show):
pub_date = feed['entries'][i].updated_parsed
published = datetime.date(pub_date[0], pub_date[1], pub_date[2] )
posts.append({
'title': feed['entries'][i].title,
'summary': feed['entries'][i].summary,
'link': feed['entries'][i].link,
'date': published,
})
return {'posts': posts}
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Add in some caching, and this is a winner. :)
#
you didn't add the imports
#
To avoid crash on empty or broken feeds:
#
Please login first before commenting.