Примечания к выпуску 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 и с использованием бэкэндов пространственной базы данных .

Copyright ©2020 All rights reserved