feedgenerator
raw JSON → 2.2.1 verified Fri May 01 auth: no python
Standalone version of django.utils.feedgenerator for generating RSS 2.0 and Atom feeds. Current version 2.2.1, supports Python >=3.9, released under BSD license.
pip install feedgenerator Common errors
error ImportError: cannot import name 'SyndicationFeed' from 'feedgenerator' ↓
cause Misspelled or wrong package name; some users confuse with 'feedgen' or 'feedparser'.
fix
Use 'from feedgenerator import SyndicationFeed' after installing feedgenerator.
error AttributeError: 'NoneType' object has no attribute 'strftime' ↓
cause pubdate or updateddate not set or set to None when item is added.
fix
Provide a valid datetime object to pubdate parameter.
error TypeError: writeString() missing 1 required positional argument: 'feedtype' ↓
cause writeString expects 'rss' or 'atom' argument.
fix
Call feed.writeString('rss') or feed.writeString('atom').
Warnings
gotcha The default writeString method may not include all items if not all feed attributes are set. Ensure feed_url is set for Atom feeds. ↓
fix Always set feed_url when creating an Atom feed.
deprecated In older versions (<2.0), subtitles and descriptions were handled differently; since 2.0, double subtitles are fixed but description may be used as subtitle in Atom if subtitle not provided. ↓
fix Provide both description and subtitle explicitly to avoid confusion.
breaking Python 3.7 and 3.8 support dropped in version 2.2.0. Users on those Python versions must pin to feedgenerator<2.2.0. ↓
fix Upgrade to Python >=3.9, or pin feedgenerator to 2.1.0.
Imports
- SyndicationFeed
from feedgenerator import SyndicationFeed - Rss201rev2Feed wrong
from feedgenerator import RSSFeedcorrectfrom feedgenerator import Rss201rev2Feed - Atom1Feed
from feedgenerator import Atom1Feed
Quickstart
from feedgenerator import SyndicationFeed
feed = SyndicationFeed(
title='My Blog',
link='https://example.com/',
description='A blog about stuff',
feed_url='https://example.com/feed.xml',
author_name='Author',
language='en'
)
feed.add_item(
title='First Post',
link='https://example.com/first-post',
pubdate=datetime(2026, 5, 1),
description='This is my first post.'
)
rss = feed.writeString('rss')
atom = feed.writeString('atom')
print(rss)
print(atom)