Django Notifications

django-notifications-hq предоставляет готовую систему уведомлений для Django приложений.

Установка

1# Установка пакета
2pip install django-notifications-hq
1# Или через Poetry
2poetry add django-notifications-hq

Настройка

1# settings.py
2INSTALLED_APPS = [
3    'notifications',
4]

Создание уведомлений

 1from notifications.signals import notify
 2
 3# Простое уведомление
 4notify.send(
 5    sender=request.user,
 6    recipient=target_user,
 7    verb='прокомментировал',
 8    action_object=comment,
 9    target=article
10)
11
12# В представлении
13def like_article(request, article_id):
14    article = Article.objects.get(id=article_id)
15    notify.send(
16        sender=request.user,
17        recipient=article.author,
18        verb='поставил лайк',
19        target=article
20    )

Получение уведомлений

 1# Все уведомления пользователя
 2notifications = request.user.notifications.all()
 3
 4# Непрочитанные
 5unread = request.user.notifications.unread()
 6
 7# Отметить как прочитанное
 8notification.mark_as_read()
 9
10# Количество непрочитанных
11count = request.user.notifications.unread().count()

Кастомизация уведомлений

 1# Создание кастомного уведомления
 2notify.send(
 3    sender=request.user,
 4    recipient=target_user,
 5    verb='отправил сообщение',
 6    action_object=message,
 7    target=conversation,
 8    level='info',  # success, info, warning, error
 9    description='Новое сообщение в чате'
10)

FAQ

Q: Как интегрировать с WebSocket?
A: Используй Django Channels для real-time уведомлений.

Q: Можно ли группировать уведомления?
A: Да, используй target для группировки по объектам.