{"id":23585,"library":"django-notifications-hq","title":"django-notifications-hq","description":"A GitHub-like notifications app for Django. Current version 1.8.3. Supports Django 3.2, 4.1+. Released infrequently, maintenance mode.","status":"active","version":"1.8.3","language":"python","source_language":"en","source_url":"https://github.com/django-notifications/django-notifications","tags":["django","notifications","django-notifications-hq","realtime"],"install":[{"cmd":"pip install django-notifications-hq","lang":"bash","label":"pip install"}],"dependencies":[{"reason":"Core requirement","package":"Django","optional":false},{"reason":"Used for model mixins","package":"django-model-utils","optional":false},{"reason":"Time zone support","package":"pytz","optional":false},{"reason":"Optional JSON field support when USE_JSONFIELD=True","package":"jsonfield","optional":true}],"imports":[{"note":"notify is in signals module, not top-level.","wrong":"from notifications import notify","symbol":"notify","correct":"from notifications.signals import notify"},{"note":"Straightforward import.","symbol":"Notification","correct":"from notifications.models import Notification"}],"quickstart":{"code":"INSTALLED_APPS = [\n    'notifications',\n    # ...\n]\n\nfrom django.conf import settings\nfrom notifications.signals import notify\n\n# Create a notification\nnotify.send(request.user, recipient=other_user, verb='reached level 10')\n\n# In template\n{% load notifications_tags %}\n<script src=\"{% static 'notifications/notify.js' %}\" type=\"text/javascript\"></script>\n{% register_notify_callbacks callbacks='fill_notification_badge,fill_notification_list' %}\n{% live_notify_badge %}\n{% live_notify_list %}","lang":"python","description":"Basic setup and usage."},"warnings":[{"fix":"Add DJANGO_NOTIFICATION_CONFIG = {'PAGINATE_BY': 20, 'USE_JSONFIELD': False, 'SOFT_DELETE': False, 'NUM_TO_FETCH': 10} to settings.py.","message":"Version 1.5.0 introduced a required DJANGO_NOTIFICATION_CONFIG dict in settings.py. Old configs broken.","severity":"breaking","affected_versions":">=1.5.0"},{"fix":"Upgrade to Django 3.2+ and Python 3.7+.","message":"Django <3.2 and Python <3.7 support dropped in 1.8.0.","severity":"deprecated","affected_versions":">=1.8.0"},{"fix":"Use CSS classes instead of IDs in custom templates.","message":"The notify.js callback uses class-based selectors since version 1.4.0. Old ID-based selectors break if you override templates.","severity":"gotcha","affected_versions":">=1.4.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use: from notifications.signals import notify","cause":"Incorrect import path; notify is in signals module.","error":"ImportError: cannot import name 'notify' from 'notifications'"},{"fix":"Rename your app or use a different INSTALLED_APPS label, or set NOTIFICATIONS_LABEL in settings.","cause":"Another app named 'notifications' is installed (e.g., django-allauth's notification).","error":"django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: notifications"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}