From 70a568c353d84ce0a34514d0fa35321d3ea8bbab Mon Sep 17 00:00:00 2001 From: Ask Solem Date: Mon, 10 Feb 2014 15:30:19 +0000 Subject: [PATCH] Fixes compatibility with Django 1.7. Closes #1850 --- celery/fixups/django.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/celery/fixups/django.py b/celery/fixups/django.py index cbf43941ae1..ab20325f59e 100644 --- a/celery/fixups/django.py +++ b/celery/fixups/django.py @@ -134,13 +134,22 @@ def __init__(self, app): ) def validate_models(self): - from django.core.management.validation import get_validation_errors s = io.StringIO() - num_errors = get_validation_errors(s, None) - if num_errors: - raise RuntimeError( - 'One or more Django models did not validate:\n{0}'.format( - s.getvalue())) + try: + from django.core.management.validation import get_validation_errors + except ImportError: + import django + from django.core.management.base import BaseCommand + django.setup() + cmd = BaseCommand() + cmd.stdout, cmd.stderr = sys.stdout, sys.stderr + cmd.check() + else: + num_errors = get_validation_errors(s, None) + if num_errors: + raise RuntimeError( + 'One or more Django models did not validate:\n{0}'.format( + s.getvalue())) def install(self): signals.beat_embedded_init.connect(self.close_database)