Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

Framework for asynchronous email notifications from Django

Project Description

django-tidings is a framework for sending email notifications to users who have registered interest in certain events, such as the modification of some model object. Used by and, it is optimized for large-scale installations. Its features include…

  • Asynchronous operation using the celery task queue
  • De-duplication of notifications
  • Association of subscriptions with either registered Django users or anonymous email addresses
  • Optional confirmation of anonymous subscriptions
  • Hook points for customizing any page drawn and any email sent

Please see the full documentation at

Version History

2.0.1 (2018-02-14)
  • Fix a bug where asynchronously firing a task (the default) would raise an exception when run via Celery.
2.0 (2018-02-10)
  • Added support for Django 1.9, 1.10, 1.11, and 2.0.
  • Dropped support for Django 1.7 and South.
  • Dropped support for jingo. Templates for the unsubscribe view are now standard Django templates.
  • Added, to avoid using the pickle serializer, which has security concerns.
  • Added setting TIDINGS_TEMPLATE_EXTENSION to allow changing the template extension used by the unsubscribe view from html to jinja, j2, etc.
  • Migrated from a maximum length of 75 to 254, to follow the EmailField update in Django 1.8.
1.2 (2017-03-22)
  • Added support for Django 1.8 and Python 3
  • Dropped support for Python 2.6
1.1 (2015-04-23)
1.0 (2015-03-03)
  • Support Django 1.6.
  • Fix a bug in reconstituting models under (perhaps) Django 1.5.x and up.
  • Remove rate limit on claim_watches task.
  • Add tox to support testing against multiple Django versions.
  • Fix a deprecated celery import path.
  • Add support for newer versions of Django, and drop support for older ones. We now support 1.4 and 1.5.
  • Add an initial South migration.


If you’re already using South in your project, you need to run the following command to create a “fake” migration step in South’s migration history:

python path/to/ migrate tidings --fake
  • Support excluding multiple users when calling fire().
  • API change: _mails() now receives, in each user/watch tuple, a list of Watch objects rather than just a single one. This enables you to list all relevant watches in your emails or to make decisions from an EventUnion’s _mails() method based on what kind of events the user was subscribed to.
  • Expose a few attribute docs to Sphinx.
  • Initial release. In production on API may change.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(25.3 kB) Copy SHA256 Hash SHA256
py2.py3 Wheel Feb 14, 2018
(43.3 kB) Copy SHA256 Hash SHA256
Source Feb 14, 2018

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting