Skip to main content

Django message notification package

Project description

Django user notification

GitHub license pypi-version PyPI - Python Version PyPI - Django Version Build Status

Overview

Django user notification is intended to provide a way to send multiple types of notification messages to django users out of box and docs are on the way...

Requirements

  • Python (3.8, 3.9, 3.10)
  • Django (3.1, 3.2, 4.0, 4.1)

We highly recommend and only officially support the latest patch release of each Python and Django series.

Installation

Install using pip...

pip install django-user-notification

Add 'notification' to your INSTALLED_APPS setting.

INSTALLED_APPS = [
    ...
    'notification',
]

Quick Start

Let's take a look at a quick start of using Django user notification to send notification messages to users.

Run the notification migrations using:

python manage.py migrate notification

Add the following to your settings.py module:

INSTALLED_APPS = [
    ...  # Make sure to include the default installed apps here.
    'notification',
]

DJANGO_USER_NOTIFICATION = {
    "aliyunsms": {
        "access_key_id": "ACCESS_KEY_ID",
        "access_key_secret": "ACCESS_KEY_SECRET",
        "sign_name": "SIGN_NAME",
    },
    "dingtalkchatbot": {
        "webhook": "DINGTALK_WEBHOOK",
    },
    "dingtalkworkmessage": {
        "agent_id": "DINGTALK_AGENT_ID",
        "app_key": "DINGTALK_APP_KEY",
        "app_secret": "DINGTALK_APP_SECRET",
    },
    "dingtalktodotask": {
        "app_key": "DINGTALK_APP_KEY",
        "app_secret": "DINGTALK_APP_SECRET",
    },
}

Let's send a notification

from django.contrib.auth import get_user_model
from notification.backends import notify_by_email, notify_by_dingtalk_workmessage

User = get_user_model()

recipient = User.objects.first()

# send a dingtalk work message notification
notify_by_dingtalk_workmessage([recipient], phone_field="phone", title="This is a title", message="A test message")


# send a email notiofication
notify_by_email([recipient], title="This is a title", message="A test message")

Send Message With Template

django-user-notification support send notifications with custom template, To specify a custom message template you can provide the template_code and context parameters.

  1. Create a template message with code named TMP01 on django admin

  2. Provide the template_code and context to send method:

...

notify_by_email([recipient], template_code="TMP01", context={"content": "Hello"})

Supported backends

  • DummyNotificationBackend: send dummy message
  • EmailNotificationBackend: send email notification.
  • WebsocketNotificationBackend: send webdocket notification, need channels installed
  • AliyunSMSNotificationBackend: send aliyun sms notification.
  • DingTalkChatBotNotificationBackend: send dingtalk chatbot notification.
  • DingTalkTODOTaskNotificationBackend: send dingtalk todo tasks notification
  • DingTalkWorkMessageNotificationBackend: send dingtalk work message notification.

Running the tests

To run the tests against the current environment:

$ ./manage.py test

Changelog

0.5.0

  • Initial release

Thanks

PyCharm

Project details


Download files

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

Source Distribution

django-user-notification-0.7.2.tar.gz (17.5 kB view hashes)

Uploaded Source

Built Distribution

django_user_notification-0.7.2-py3-none-any.whl (26.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page