Примечания к выпуску Django 1.2.4 ¶
Добро пожаловать в Django 1.2.4!
Это четвертый выпуск с исправлениями ошибок в серии Django 1.2, улучшающий стабильность и производительность кодовой базы Django 1.2.
За одним исключением, Django 1.2.4 поддерживает обратную совместимость с Django 1.2.3. Он также содержит ряд исправлений и других улучшений. Django 1.2.4 - это рекомендуемое обновление для любой разработки или развертывания, в настоящее время использующей или нацеленной на Django 1.2.
Полную информацию о новых функциях, обратной несовместимости и устаревших функциях в ветке 1.2 см. В примечаниях к выпуску Django 1.2 .
Обратно несовместимые изменения ¶
Ограниченные фильтры в интерфейсе администратора ¶
Административный интерфейс Django django.contrib.admin
поддерживает фильтрацию отображаемых списков объектов по полям соответствующих моделей, в том числе по отношениям на уровне базы данных. Это реализуется путем передачи аргументов поиска в части строки запроса URL-адреса, а параметры в классе ModelAdmin позволяют разработчикам указывать определенные поля или отношения, которые будут генерировать автоматические ссылки для фильтрации.
Одна исторически недокументированная и неофициально поддерживаемая функция заключалась в возможности пользователя с достаточным знанием структуры модели и формата этих аргументов поиска изобретать новые полезные фильтры на лету, манипулируя строкой запроса.
Однако было продемонстрировано, что этим можно злоупотреблять для получения доступа к информации за пределами разрешений администратора; например, злоумышленник с доступом к администратору и достаточным знанием структуры модели и отношений может построить строки запроса, которые - при многократном использовании поиска регулярных выражений, поддерживаемых API базы данных Django - раскрывают конфиденциальную информацию, такую как хэши паролей пользователей.
Чтобы исправить это, django.contrib.admin
теперь будет проверяться, что аргументы поиска в строке запроса либо указывают только поля в просматриваемой модели, либо перекрестные отношения, которые были явно разрешены разработчиком приложения с использованием ранее существовавшего механизма, упомянутого выше. Это обратно несовместимо для любых пользователей, полагающихся на предыдущую возможность вставлять произвольные поисковые запросы.
Одна новая функция ¶
Обычно точечный выпуск не включает новых функций, но в случае Django 1.2.4 мы сделали исключение из этого правила.
Одна из ошибок, исправленных в Django 1.2.4, связана с рядом обстоятельств, при которых запуск набора тестов в конфигурации с несколькими базами данных может привести к удалению исходной исходной базы данных (то есть фактической производственной базы данных), что приведет к катастрофической потере данных. Чтобы исправить эту проблему, необходимо было ввести новый параметр - TEST_DEPENDENCIES
- который позволяет вам определять любые зависимости порядка создания в конфигурации вашей базы данных.
Большинство пользователей - даже пользователи с конфигурациями с несколькими базами данных - не должны беспокоиться об ошибке потери данных или ручной настройке
TEST_DEPENDENCIES
. Подробную информацию см. В документации к исходному отчету
о проблемах по управлению порядком создания тестовых баз данных.
GeoDjango ¶
Функция на основе функций, TEST_RUNNER
ранее использовавшаяся для выполнения набора тестов GeoDjango, django.contrib.gis.tests.run_gis_tests
окончательно устарела в пользу средства выполнения тестов на основе классов
django.contrib.gis.tests.GeoDjangoTestSuiteRunner
, добавленного в этот выпуск.
Кроме того, набор тестов GeoDjango теперь включен при
запуске набора тестов Django с runtests.py
и с использованием бэкэндов пространственной базы данных .