From fe6ddb837d18bd4e71cd22fc18272d31478b19f2 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 5 Aug 2015 11:07:36 +0200 Subject: Fixed #24704 -- Made the autoreloader survive SyntaxErrors. With this change, it's expected to survive anything except errors that make it impossible to import the settings. It's too complex to fallback to a sensible behavior with a broken settings module. Harcoding things about runserver in ManagementUtility.execute is atrocious but it's the only way out of the chicken'n'egg problem: the current implementation of the autoreloader primarily watches imported Python modules -- and then a few other things that were bolted on top of this design -- but we want it to kick in even if the project contains import-time errors and django.setup() fails. At some point we should throw away this code and replace it by an off-the-shelf autoreloader that watches the working directory and re-runs `django-admin runserver` whenever something changes. --- docs/releases/1.8.5.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.8.5.txt b/docs/releases/1.8.5.txt index 543e8824be..ac1735bb16 100644 --- a/docs/releases/1.8.5.txt +++ b/docs/releases/1.8.5.txt @@ -9,6 +9,8 @@ Django 1.8.5 fixes several bugs in 1.8.4. Bugfixes ======== +* Made the development server's autoreload more robust (:ticket:`24704`). + * Fixed ``AssertionError`` in some delete queries with a model containing a field that is both a foreign and primary key (:ticket:`24951`). -- cgit v1.3