• 3.2
  • 5.0
  • 6.1
  • Версия документации: 3.1

Примечания к выпуску Django 1.2.4

Добро пожаловать в Джанго 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 — раскрывают конфиденциальную информацию, такую ​​​​как хэши паролей пользователей.

To remedy this, django.contrib.admin will now validate that querystring lookup arguments either specify only fields on the model being viewed, or cross relations which have been explicitly allowed by the application developer using the pre-existing mechanism mentioned above. This is backwards-incompatible for any users relying on the prior ability to insert arbitrary lookups.

Одна новая функция

Обычно точечный выпуск не включает в себя новые функции, но в случае с Django 1.2.4 мы сделали исключение из этого правила.

Одна из ошибок, исправленных в Django 1.2.4, связана с рядом обстоятельств, при которых запуск набора тестов в конфигурации с несколькими базами данных может привести к удалению исходной исходной базы данных (т. е. фактической рабочей базы данных), что приведет к катастрофической потере данных. Чтобы исправить эту проблему, было необходимо ввести новый параметр — TEST_DEPENDENCIES - который позволяет вам определять любые зависимости порядка создания в конфигурации вашей базы данных.

Большинству пользователей — даже пользователям с конфигурациями с несколькими базами данных — не нужно беспокоиться об ошибке потери данных или ручной настройке TEST_DEPENDENCIES. Подробности см. в оригинальном отчете о проблеме документации по управлению порядком создания тестовых баз данных.

ГеоДжанго

Параметр TEST_RUNNER на основе функции, ранее использовавшийся для выполнения набора тестов GeoDjango, django.contrib.gis.tests.run_gis_tests, был окончательно объявлен устаревшим в пользу средства запуска тестов на основе классов, django.contrib.gis.tests.GeoDjangoTestSuiteRunner, добавленного в этом выпуске.

Кроме того, набор тестов GeoDjango теперь включается при запуске набора тестов Django с runtests.py и использовании бэкендов пространственной базы данных.

Back to Top