django-planet
A reusable Django app for building RSS/Atom feed aggregator websites (aka "Planet" sites).
Django-planet makes it easy to create a planet-style feed aggregator. Collect posts from multiple blogs and websites, store them in your database, and display them with built-in views and templates—or build your own custom front-end.
Live Demo: A planet for Django-related feeds
✨ Features
- RSS and Atom feed parsing - Supports both RSS and Atom feed formats via feedparser
- Automatic feed updates - Management commands to add feeds and update all feeds
- Blog, Feed, Post, and Author models - Complete data model with relationships
- Built-in views and templates - Ready-to-use views for blogs, feeds, posts, and authors
- Django admin integration - Manage all content through Django's admin interface
- Search functionality - Built-in search across posts, blogs, feeds, and authors
- SEO-friendly URLs - Slugified URLs with automatic redirects
- Custom managers - QuerySet methods for filtering by blog, feed, author
- Template tags - Custom template tags for common operations
- Pagination support - Uses django-pagination-py3 for easy pagination
- Post filtering - Configurable filter backends to accept only relevant posts
- Content archiving - Optionally fetch and store the full original content of posts
📦 Quick Start
pip install django-planet
INSTALLED_APPS = [
# ...
"planet",
"pagination",
]
MIDDLEWARE = [
# ...
"pagination.middleware.PaginationMiddleware",
]
python manage.py migrate
Then include the URLs in your urls.py:
path("", include("planet.urls")),
→ Full installation & configuration guide
📖 Documentation
- Installation & Configuration — Setup, settings reference, and URL configuration
- Usage — Adding feeds, updating feeds, built-in views, and search
- Models — Data model and relationships
- Templates & Template Tags — Built-in templates and custom tags
- Admin Interface — Managing content via Django admin
- Configuration Reference — All settings, post filtering backends, and logging
- Contributing — Development setup and contribution guide
- Demo & Screenshots — Live demo and example project
🧪 Testing
hatch run test:test # full suite
hatch run test:cov # with coverage
See the contributing guide for the full test matrix and setup instructions.
📄 License
django-planet is released under the BSD 3-Clause License - see the LICENSE file for more information.
🙏 Acknowledgements
Inspired by Feedjack and Mark Pilgrim's Feedparser.
💬 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- PyPI: pypi.org/project/django-planet
Metadata
Release files for django-planet 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_planet-1.1.1.tar.gz | 27.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_planet-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.6 kB
Release files / django_planet-1.1.1.tar.gz
| Download URL | django_planet-1.1.1.tar.gz |
|---|---|
| Size | 27.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fd5ac4769fbec218a79c82bdaf49a7fd9dcb516731319e2ef11097752454027
|
|
BLAKE2b-256 checksum How to use checksums |
f5217436b79a63f30b1bba189aaba8ab4e26ef96a7ce33ed4195d6d96da0828e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / django_planet-1.1.1-py3-none-any.whl
| Download URL | django_planet-1.1.1-py3-none-any.whl |
|---|---|
| Size | 43.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be20bcced3ee27d694fb649358e5195e28805fd6a78c095c9aa7579cfcccee2c
|
|
BLAKE2b-256 checksum How to use checksums |
596816deb6217c49df6a81c1478ace0c3485a405a4b00a6c81432608ba515bb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|