summaryrefslogtreecommitdiff
path: root/raven/contrib
diff options
context:
space:
mode:
authorDavid Cramer <dcramer@gmail.com>2017-02-21 15:24:49 -0800
committerDavid Cramer <dcramer@gmail.com>2017-02-21 15:25:10 -0800
commit4d413e2b583714752bb4e70192d6f56672989417 (patch)
tree503387e10eb8f84ff2916dc0490053ae7aad325f /raven/contrib
parent753db03984451e19225c576306479a97272d7b95 (diff)
downloadraven-4d413e2b583714752bb4e70192d6f56672989417.tar.gz
[django] fix registration of hooks
- utilize app.ready() for Django 1.7+ - ensure client is instantiated upon initialization (fixes sys.except_hook) Fixes GH-884
Diffstat (limited to 'raven/contrib')
-rw-r--r--raven/contrib/django/__init__.py8
-rw-r--r--raven/contrib/django/apps.py5
-rw-r--r--raven/contrib/django/models.py9
3 files changed, 17 insertions, 5 deletions
diff --git a/raven/contrib/django/__init__.py b/raven/contrib/django/__init__.py
index 23036a6..3fb09fa 100644
--- a/raven/contrib/django/__init__.py
+++ b/raven/contrib/django/__init__.py
@@ -7,7 +7,13 @@ raven.contrib.django
"""
from __future__ import absolute_import
-default_app_config = 'raven.contrib.django.apps.RavenConfig'
+import django
+default_app_config = 'raven.contrib.django.apps.RavenConfig'
from .client import DjangoClient # NOQA
+
+# Django 1.8 uses ``raven.contrib.apps.RavenConfig``
+if django.VERSION < (1, 7, 0):
+ from .models import initialize
+ initialize()
diff --git a/raven/contrib/django/apps.py b/raven/contrib/django/apps.py
index 7aaf4ff..db33b38 100644
--- a/raven/contrib/django/apps.py
+++ b/raven/contrib/django/apps.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
+
from django.apps import AppConfig
@@ -7,3 +8,7 @@ class RavenConfig(AppConfig):
name = 'raven.contrib.django'
label = 'raven_contrib_django'
verbose_name = 'Raven'
+
+ def ready(self):
+ from .models import initialize
+ initialize()
diff --git a/raven/contrib/django/models.py b/raven/contrib/django/models.py
index 05bf3cc..8d60aa0 100644
--- a/raven/contrib/django/models.py
+++ b/raven/contrib/django/models.py
@@ -237,13 +237,14 @@ def install_middleware():
type(middleware)((name,)) + middleware)
-if (
- 'raven.contrib.django' in settings.INSTALLED_APPS or
- 'raven.contrib.django.raven_compat' in settings.INSTALLED_APPS
-):
+def initialize():
register_serializers()
install_middleware()
+ # XXX(dcramer): maybe this setting should disable ALL of this?
if not getattr(settings, 'DISABLE_SENTRY_INSTRUMENTATION', False):
handler = SentryDjangoHandler()
handler.install()
+
+ # instantiate client so hooks get registered
+ get_client() # NOQA