A django planet and feeds (RSS and ATOM) aggregator application for Django.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_planet-1.1.1.tar.gz.
File metadata
- Download URL: django_planet-1.1.1.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fd5ac4769fbec218a79c82bdaf49a7fd9dcb516731319e2ef11097752454027
|
|
| MD5 |
bbac781c79e5b7ef6e8dd5a57a7b07a8
|
|
| BLAKE2b-256 |
f5217436b79a63f30b1bba189aaba8ab4e26ef96a7ce33ed4195d6d96da0828e
|
File details
Details for the file django_planet-1.1.1-py3-none-any.whl.
File metadata
- Download URL: django_planet-1.1.1-py3-none-any.whl
- Upload date:
- Size: 43.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be20bcced3ee27d694fb649358e5195e28805fd6a78c095c9aa7579cfcccee2c
|
|
| MD5 |
b5cdb8c62c8246795ba95c19a41b76ce
|
|
| BLAKE2b-256 |
596816deb6217c49df6a81c1478ace0c3485a405a4b00a6c81432608ba515bb8
|