squashed commits from django-15 branch