Временная шкала устаревания Django¶
Этот документ описывает, когда различные части Django будут удалены или изменены несовместимым с предыдущими версиями способом, после их обесценивания, согласно deprecation policy. Более подробную информацию о каждом элементе часто можно найти в примечаниях к релизам двух предыдущих версий.
6.0¶
Подробнее об этих изменениях читайте в Django 5.0 release notes.
- Рендеры переходных форм
DjangoDivFormRendererиJinja2DivFormRendererбудут удалены. - Поддержка передачи позиционных аргументов в
BaseConstraintбудет удалена. requestбудет обязательным в подписи подклассовModelAdmin.lookup_allowed().django.db.models.sql.datastructures.Joinбольше не будет возвращаться кget_joining_columns().- Метод
get_joining_columns()изForeignObjectиForeignObjectRelбудет удален. - Метод
ForeignObject.get_reverse_joining_columns()будет удален. - Схема по умолчанию для
forms.URLFieldизменится с"http"на"https". - Поддержка вызова
format_html()без передачи args или kwargs будет удалена. - Поддержка
cx_Oracleбудет удалена. BaseDatabaseOperations.field_cast_sql()будет удален.- Псевдоним
ChoicesMetaдляdjango.db.models.enums.ChoicesTypeбудет удален. - Метод
Prefetch.get_current_queryset()будет удален. - Метод
get_prefetch_queryset()в связанных менеджерах и дескрипторах будет удален. get_prefetcher()иprefetch_related_objects()больше не будут возвращаться кget_prefetch_queryset().- Переходная настройка
FORMS_URLFIELD_ASSUME_HTTPSбудет удалена.
5.1¶
Подробнее об этих изменениях см. в Django 4.2 release notes.
- Метод
BaseUserManager.make_random_password()будет удален. - Опция
Meta.index_togetherв модели будет удалена. - Шаблонный фильтр
length_isбудет удален. - Будут удалены
django.contrib.auth.hashers.SHA1PasswordHasher,django.contrib.auth.hashers.UnsaltedSHA1PasswordHasherиdjango.contrib.auth.hashers.UnsaltedMD5PasswordHasher. - Модель
django.contrib.postgres.fields.CICharField,django.contrib.postgres.fields.CIEmailFieldиdjango.contrib.postgres.fields.CITextFieldбудет удалена. Поля-заглушки останутся для совместимости с историческими миграциями. - Миксин
django.contrib.postgres.fields.CITextбудет удален. - Атрибуты
map_widthиmap_heightуBaseGeometryWidgetбудут удалены. - Метод
SimpleTestCase.assertFormsetError()будет удален. - Метод
TransactionTestCase.assertQuerysetEqual()будет удален. - Поддержка передачи закодированных строковых литералов JSON в
JSONFieldи связанных с ними поисков и выражений будет удалена. - Поддержка передачи позиционных аргументов в
SignerиTimestampSignerбудет удалена. - Настройки
DEFAULT_FILE_STORAGEиSTATICFILES_STORAGEбудут удалены. - Функция
django.core.files.storage.get_storage_class()будет удалена.
5.0¶
Подробнее об этих изменениях см. в Django 4.0 release notes.
- Тестовая настройка
SERIALIZEбудет удалена. - Недокументированный модуль
django.utils.baseconvбудет удален. - Недокументированный модуль
django.utils.datetime_safeбудет удален. - Значение по умолчанию настройки
USE_TZизменится сFalseнаTrue. - Протокол по умолчанию для карт сайта, построенных вне контекста запроса, изменится с
'http'на'https'. - Аргумент
extra_testsдляDiscoverRunner.build_suite()иDiscoverRunner.run_tests()будет удален. - Совокупности
django.contrib.postgres.aggregates.ArrayAgg,JSONBAggиStringAggбудут возвращатьNoneпри отсутствии строк вместо[],[]и''соответственно. - Настройка
USE_L10Nбудет удалена. - Переходная настройка
USE_DEPRECATED_PYTZбудет удалена. - Поддержка временных зон
pytzбудет удалена. - Аргумент
is_dstбудет удален из:QuerySet.datetimes()django.utils.timezone.make_aware()django.db.models.functions.Trunc()django.db.models.functions.TruncSecond()django.db.models.functions.TruncMinute()django.db.models.functions.TruncHour()django.db.models.functions.TruncDay()django.db.models.functions.TruncWeek()django.db.models.functions.TruncMonth()django.db.models.functions.TruncQuarter()django.db.models.functions.TruncYear()
- Классы
django.contrib.gis.admin.GeoModelAdminиOSMGeoAdminбудут удалены. - Недокументированный метод
BaseForm._html_output()будет удален. - Возможность возвращать
str, а неSafeString, при рендерингеErrorDictиErrorListбудет удалена.
Более подробную информацию об этих изменениях см. в Django 4.1 release notes.
- Метод
SitemapIndexItem.__str__()будет удален. - Переходная настройка
CSRF_COOKIE_MASKEDбудет удалена. - Аргумент
nameизdjango.utils.functional.cached_property()будет удален. - Аргумент
opclassesизdjango.contrib.postgres.constraints.ExclusionConstraintбудет удален. - Недокументированная возможность передачи
errors=NoneвSimpleTestCase.assertFormError()иassertFormsetError()будет удалена. django.contrib.sessions.serializers.PickleSerializerбудут удалены.- Использование
QuerySet.iterator()в кверисете, который осуществляет предварительную выборку связанных объектов без указания аргументаchunk_size, больше не будет разрешено. - Передача несохраненных экземпляров модели в связанные фильтры больше не будет разрешена.
created=Trueбудет требоваться в подписи подклассовRemoteUserBackend.configure_user().- Поддержка выхода из системы через запросы
GETвdjango.contrib.auth.views.LogoutViewиdjango.contrib.auth.views.logout_then_login()будет удалена. - Псевдоним
django.utils.timezone.utcдляdatetime.timezone.utcбудет удален. - Передача объекта ответа и имени формы/формсета в
SimpleTestCase.assertFormError()иassertFormsetError()больше не будет разрешена. - Символ
django.contrib.gis.admin.OpenLayersWidgetбудет удален. - Символ
django.contrib.auth.hashers.CryptPasswordHasherбудет удален. - Шаблоны
"django/forms/default.html"и"django/forms/formsets/default.html"будут удалены. - Возможность передавать
nulls_first=Falseилиnulls_last=Falseв методыExpression.asc()иExpression.desc(), а также выражениеOrderByбудет удалена.
4.1¶
Подробнее об этих изменениях см. в Django 3.2 release notes.
- Поддержка присвоения объектов, не поддерживающих создание глубоких копий с помощью
copy.deepcopy(), атрибутам класса вTestCase.setUpTestData()будет удалена. BaseCommand.requires_system_checksне будет поддерживать булевы значения.- Аргумент
whitelistи атрибутdomain_whitelistвdjango.core.validators.EmailValidatorбудут удалены. - Переменная модуля
default_app_configбудет удалена. TransactionTestCase.assertQuerysetEqual()больше не будет автоматически вызыватьrepr()на кверисете при сравнении со строковыми значениями.django.core.cache.backends.memcached.MemcachedCacheбудут удалены.- Поддержка формата сообщений, существовавшего до версии Django 3.2 и использовавшегося
django.contrib.messages.storage.cookie.CookieStorage, будет удалена.
4.0¶
Подробнее об этих изменениях см. в Django 3.0 release notes.
django.utils.http.urlquote(),urlquote_plus(),urlunquote()иurlunquote_plus()будут удалены.django.utils.encoding.force_text()иsmart_text()будут удалены.django.utils.translation.ugettext(),ugettext_lazy(),ugettext_noop(),ungettext()иungettext_lazy()будут удалены.django.views.i18n.set_language()больше не будет устанавливать язык пользователя вrequest.session(клавишаdjango.utils.translation.LANGUAGE_SESSION_KEY).alias=Noneбудет требоваться в подписи подклассовdjango.db.models.Expression.get_group_by_cols().django.utils.text.unescape_entities()будут удалены.django.utils.http.is_safe_url()будут удалены.
Подробнее об этих изменениях см. в Django 3.1 release notes.
- Настройка
PASSWORD_RESET_TIMEOUT_DAYSбудет удалена. - Недокументированное использование поиска
isnullс небулевыми значениями в качестве правой части больше не будет разрешено. - Класс исключений
django.db.models.query_utils.InvalidQueryбудет удален. - Точка входа
django-admin.pyбудет удалена. - Метод
HttpRequest.is_ajax()будет удален. - Поддержка формата кодировки значений cookies, существовавшего до версии Django 3.1 и использовавшегося в
django.contrib.messages.storage.cookie.CookieStorage, будет удалена. - Будет удалена поддержка токенов сброса пароля в админке до версии Django 3.1 (которые используют алгоритм хэширования SHA-1).
- Поддержка формата кодировки сессий, существовавшего до версии Django 3.1, будет удалена.
- Поддержка подписей
django.core.signing.Signer, существовавших до версии Django 3.1 (закодированных алгоритмом SHA-1), будет удалена. - Поддержка подписей
django.core.signing.dumps(), существовавших до версии Django 3.1 (закодированных алгоритмом SHA-1) вdjango.core.signing.loads()будет удалена. - Поддержка пользовательских сессий до версии Django 3.1 (которые используют алгоритм SHA-1) будет удалена.
- Аргумент
get_responseдляdjango.utils.deprecation.MiddlewareMixin.__init__()будет обязательным и не будет приниматьNone. - Аргумент
providing_argsдляdjango.dispatch.Signalбудет удален. - Аргумент
lengthдляdjango.utils.crypto.get_random_string()будет обязательным. - Сообщение
listдляModelMultipleChoiceFieldбудет удалено. - Поддержка передачи необработанных псевдонимов столбцов в
QuerySet.order_by()будет удалена. - Модель
NullBooleanFieldбудет удалена. Поле-заглушка останется для совместимости с историческими миграциями. django.conf.urls.url()будут удалены.- Модель
django.contrib.postgres.fields.JSONFieldбудет удалена. Поле-заглушка останется для совместимости с историческими миграциями. django.contrib.postgres.forms.JSONField,django.contrib.postgres.fields.jsonb.KeyTransformиdjango.contrib.postgres.fields.jsonb.KeyTextTransformбудут удалены.- Теги шаблонов
{% ifequal %}и{% ifnotequal %}будут удалены. - Переходная настройка
DEFAULT_HASHING_ALGORITHMбудет удалена.
3.1¶
Подробнее об этих изменениях см. в Django 2.2 release notes.
django.utils.timezone.FixedOffsetбудет удален.django.core.paginator.QuerySetPaginatorбудет удален.- Модель
Meta.orderingбольше не будет влиять на запросыGROUP BY. django.contrib.postgres.fields.FloatRangeFieldиdjango.contrib.postgres.forms.FloatRangeFieldбудут удалены.- Настройка
FILE_CHARSETбудет удалена. django.contrib.staticfiles.storage.CachedStaticFilesStorageбудет удален.RemoteUserBackend.configure_user()потребуетrequestв качестве первого позиционного аргумента.- Поддержка
SimpleTestCase.allow_database_queriesиTransactionTestCase.multi_dbбудет удалена.
3.0¶
Подробнее об этих изменениях см. в Django 2.0 release notes.
- Модуль
django.db.backends.postgresql_psycopg2будет удален. django.shortcuts.render_to_response()будет удален.- Настройка
DEFAULT_CONTENT_TYPEбудет удалена. HttpRequest.xreadlines()будет удален.- Поддержка аргумента
contextвField.from_db_value()иExpression.convert_value()будет удалена. - Аргумент
field_nameключевого словаQuerySet.earliest()иlatest()будет удален.
Подробнее об этих изменениях см. в Django 2.1 release notes.
django.contrib.gis.db.models.functions.ForceRHRбудет удален.django.utils.http.cookie_date()будет удален.- Библиотеки тегов шаблонов
staticfilesиadmin_staticбудут удалены. django.contrib.staticfiles.templatetags.static()будет удален.- Шим, позволяющий определять
InlineModelAdmin.has_add_permission()без аргументаobj, будет удален.
2.1¶
Подробнее об этих изменениях см. в Django 1.11 release notes.
contrib.auth.views.login(),logout(),password_change(),password_change_done(),password_reset(),password_reset_done(),password_reset_confirm()иpassword_reset_complete()будут удалены.- Параметр
extra_contextизcontrib.auth.views.logout_then_login()будет удален. django.test.runner.setup_databases()будет удален.django.utils.translation.string_concat()будет удален.django.core.cache.backends.memcached.PyLibMCCacheбольше не будет поддерживать передачу параметров поведенияpylibmcв качестве атрибутов верхнего уровняOPTIONS.- Параметр
hostизdjango.utils.http.is_safe_url()будет удален. - Будет удалено глушение исключений, возникающих при выводе тега шаблона
{% include %}. DatabaseIntrospection.get_indexes()будет удален.- Метод аутентификации бэкендов
authenticate()потребуетrequestв качестве первого позиционного аргумента. - Декоратор
django.db.models.permalink()будет удален. - Настройка
USE_ETAGSбудет удалена.CommonMiddlewareиdjango.utils.cache.patch_response_headers()больше не будут устанавливать ETags. - Атрибут
Model._meta.has_auto_fieldбудет удален. - Поддержка
url()для встроенных флагов в группах регулярных выражений ((?i),(?L),(?m),(?s)и(?u)) будет удалена. - Поддержка методов
Widget.render()без аргументаrendererбудет удалена.
2.0¶
Подробнее об этих изменениях см. в Django 1.9 release notes.
- Аргумент
weakдляdjango.dispatch.signals.Signal.disconnect()будет удален. django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()будет удален.- Пакет
django.forms.extrasбудет удален. - Помощник
assignment_tagбудет удален. - Аргумент
hostдляassertsRedirectsбудет удален. Также будет удален уровень совместимости, позволяющий считать абсолютные URL равными относительным при идентичности пути. Field.relбудет удален.Field.remote_field.toатрибут будет удален.- Аргумент
on_deleteдляForeignKeyиOneToOneFieldбудет обязательным. django.db.models.fields.add_lazy_relation()будет удален.- Когда включена поддержка часовых поясов, бэкенды баз данных, не поддерживающие часовые пояса, больше не будут преобразовывать известные времена дат в наивные значения в UTC, когда такие значения передаются в качестве параметров в SQL-запросы, выполняемые вне ORM, например, с помощью
cursor.execute(). - Декоратор
django.contrib.auth.tests.utils.skipIfCustomUser()будет удален. - Классы
GeoManagerиGeoQuerySetбудут удалены. - Модуль
django.contrib.gis.geoipбудет удален. - Проверка
supports_recursionдля загрузчиков шаблонов будет удалена:django.template.engine.Engine.find_template()django.template.loader_tags.ExtendsNode.find_template()django.template.loaders.base.Loader.supports_recursion()django.template.loaders.cached.Loader.supports_recursion()
- Методы
load_template()иload_template_sources()загрузчика шаблонов будут удалены. - Аргумент
template_dirsдля загрузчиков шаблонов будет удален:django.template.loaders.base.Loader.get_template()django.template.loaders.cached.Loader.cache_key()django.template.loaders.cached.Loader.get_template()django.template.loaders.cached.Loader.get_template_sources()django.template.loaders.filesystem.Loader.get_template_sources()
- Метод
django.template.loaders.base.Loader.__call__()будет удален. - Поддержка пользовательских представлений ошибок с одним позиционным параметром будет прекращена.
- Атрибут
mime_typeизdjango.utils.feedgenerator.Atom1Feedиdjango.utils.feedgenerator.RssFeedбудет удален в пользуdjango.utils.feedgenerator.RssFeed. - Аргумент
app_nameдляdjango.conf.urls.include()будет удален. - Поддержка передачи 3-кортежа в качестве первого аргумента в
include()будет удалена. - Поддержка установки пространства имен экземпляра URL без пространства имен приложения будет удалена.
Field._get_val_from_obj()будет удален в пользуField.value_from_object().django.template.loaders.eggs.Loaderбудет удален.- Параметр
current_appдля представленийcontrib.authбудет удален. - Аргумент
callable_objв виде ключевого словаSimpleTestCase.assertRaisesMessage()будет удален. - Поддержка атрибута
allow_tagsдля методовModelAdminбудет удалена. - Аргумент
enclosureв виде ключевого словаSyndicationFeed.add_item()будет удален. - Псевдонимы
django.template.loader.LoaderOriginиdjango.template.base.StringOriginдляdjango.template.base.Originбудут удалены.
Подробнее об этих изменениях см. в Django 1.10 release notes.
- Опция
makemigrations --exitбудет удалена. - Поддержка прямого присвоения обратному внешнему ключу или отношению «многие-ко-многим» будет удалена.
- Методы
get_srid()иset_srid()изdjango.contrib.gis.geos.GEOSGeometryбудут удалены. - Методы
get_x(),set_x(),get_y(),set_y(),get_z()иset_z()изdjango.contrib.gis.geos.Pointбудут удалены. - Методы
get_coords()иset_coords()изdjango.contrib.gis.geos.Pointбудут удалены. - Свойство
cascaded_unionизdjango.contrib.gis.geos.MultiPolygonбудет удалено. django.utils.functional.allow_lazy()будет удален.- Опция
shell --plainбудет удалена. - Модуль
django.core.urlresolversбудет удален. - Модель
CommaSeparatedIntegerFieldбудет удалена. Поле-заглушка останется для совместимости с историческими миграциями. - Поддержка метода шаблона
Context.has_key()будет удалена. - Поддержка методов
django.core.files.storage.Storage.accessed_time(),created_time()иmodified_time()будет удалена. - Поддержка поиска запросов по имени модели, когда установлено значение
Meta.default_related_name, будет удалена. - Поиск запроса
__searchи методDatabaseOperations.fulltext_search_sql()будут удалены. - Шим для поддержки пользовательских классов связанных менеджеров без метода
_apply_rel_filters()будет удален. - Использование
User.is_authenticated()иUser.is_anonymous()в качестве методов больше не будет поддерживаться. - Частный атрибут
virtual_fieldsизModel._metaбудет удален. - Закрытые ключевые аргументы
virtual_onlyвField.contribute_to_class()иvirtualвModel._meta.add_field()будут удалены. - Представления
javascript_catalog()иjson_catalog()будут удалены. - Функция
django.contrib.gis.utils.precision_wkt()будет удалена. - При многотабличном наследовании неявное повышение
OneToOneFieldдоparent_linkбудет удалено. - Поддержка
Widget._format_value()будет удалена. - Методы
FileFieldget_directory_name()иget_filename()будут удалены. - Функция
mark_for_escaping()и классы, которые она использует:EscapeData,EscapeBytes,EscapeText,EscapeStringиEscapeUnicodeбудут удалены. - Фильтр
escapeизменится на использованиеdjango.utils.html.conditional_escape(). Manager.use_for_related_fieldsбудет удален.- Наследование модели
Managerбудет следовать правилам наследования MRO, а опцияMeta.manager_inheritance_from_futureдля отказа от такого поведения будет удалена. - Поддержка промежуточных программ старого образца, использующих
settings.MIDDLEWARE_CLASSES, будет удалена.
1.10¶
Подробнее об этих изменениях см. в Django 1.8 release notes.
- Поддержка прямого вызова
SQLCompilerв качестве псевдонима для вызова его методаquote_name_unless_aliasбудет удалена. - Теги шаблонов
cycleиfirstofбудут удалены из библиотеки тегов шаблоновfuture(использовались в период устаревания версий 1.6/1.7). django.conf.urls.patterns()будет удален.- Поддержка аргумента
prefixдляdjango.conf.urls.i18n.i18n_patterns()будет удалена. SimpleTestCase.urlsбудет удален.- Использование неправильного подсчета распакованных значений в теге шаблона
forприведет к возникновению исключения, а не к молчаливому отказу. - Возможность разворачивать URL-адреса, используя точечный путь Python, будет удалена.
- Возможность использовать пунктирный путь Python для параметров
LOGIN_URLиLOGIN_REDIRECT_URLбудет удалена. - Поддержка
optparseбудет прекращена для пользовательских команд управления (заменена наargparse). - Класс
django.core.management.NoArgsCommandбудет удален. Вместо него используйтеBaseCommand, который по умолчанию не принимает аргументов. django.core.context_processorsмодуль будет удален.django.db.models.sql.aggregatesмодуль будет удален.django.contrib.gis.db.models.sql.aggregatesмодуль будет удален.- Следующие методы и свойства
django.db.sql.query.Queryбудут удалены:- Свойства:
aggregatesиaggregate_select - Методы:
add_aggregate,set_aggregate_maskиappend_aggregate_mask.
- Свойства:
django.template.resolve_variableбудет удален.- Следующие частные API будут удалены из
django.db.models.options.Options(Model._meta):get_field_by_name()get_all_field_names()get_fields_with_model()get_concrete_fields_with_model()get_m2m_with_model()get_all_related_objects()get_all_related_objects_with_model()get_all_related_many_to_many_objects()get_all_related_m2m_objects_with_model()
- Аргумент
error_messageизdjango.forms.RegexFieldбудет удален. - Фильтр
unordered_listбольше не будет поддерживать списки старого стиля. - Поддержка строковых аргументов
viewдляurl()будет удалена. - Шим обратной совместимости для переименования
django.forms.Form._has_changed()вhas_changed()будет удален. - Фильтр шаблона
removetagsбудет удален. - Функции
remove_tags()иstrip_entities()вdjango.utils.htmlбудут удалены. - Аргумент
is_admin_siteдляdjango.contrib.auth.views.password_reset()будет удален. django.db.models.field.subclassing.SubfieldBaseбудет удален.django.utils.checksumsбудет удален; его функциональность включена вdjango-localflavor1.1+.- Атрибут
original_content_type_idнаdjango.contrib.admin.helpers.InlineAdminFormбудет удален. - Шим обратной совместимости, позволяющий определять
FormMixin.get_form()без значения по умолчанию для его аргументаform_class, будет удален. - Следующие настройки будут удалены:
ALLOWED_INCLUDE_ROOTSTEMPLATE_CONTEXT_PROCESSORSTEMPLATE_DEBUGTEMPLATE_DIRSTEMPLATE_LOADERSTEMPLATE_STRING_IF_INVALID
- Псевдоним обратной совместимости
django.template.loader.BaseLoaderбудет удален. - Шаблонные объекты Django, возвращаемые
get_template()иselect_template(), больше не будут приниматьContextв своем методеrender(). - Template response APIs будет принудительно использовать
dictи бэкенд-зависимые объекты шаблона вместоContextиTemplateсоответственно. - Параметр
current_appдля следующих функций и классов будет удален:django.shortcuts.render()django.template.Context()django.template.RequestContext()django.template.response.TemplateResponse()
- Параметры
dictionaryиcontext_instanceдля следующих функций будут удалены:django.shortcuts.render()django.shortcuts.render_to_response()django.template.loader.render_to_string()
- Параметр
dirsдля следующих функций будет удален:django.template.loader.get_template()django.template.loader.select_template()django.shortcuts.render()django.shortcuts.render_to_response()
- Проверка сеанса будет включена независимо от того, находится ли
'django.contrib.auth.middleware.SessionAuthenticationMiddleware'вMIDDLEWARE_CLASSESили нет. - Частный атрибут
django.db.models.Field.relatedбудет удален. - Опция
--listкоманды управленияmigrateбудет удалена. - Тег шаблона
ssiбудет удален. - Поддержка оператора сравнения
=в теге шаблонаifбудет удалена. - Шимы обратной совместимости, позволяющие определять
Storage.get_available_name()иStorage.save()без аргументаmax_length, будут удалены. - Поддержка устаревшего синтаксиса
%(<foo>)sвModelFormMixin.success_urlбудет удалена. - Агрегатные методы
GeoQuerySetcollect(),extent(),extent3d(),make_line()иunionagg()будут удалены. - Возможность указать
ContentType.nameпри создании экземпляра типа содержимого будет удалена. - Поддержка старой сигнатуры
allow_migrateбудет удалена. Она изменилась сallow_migrate(self, db, model)наallow_migrate(self, db, app_label, model_name=None, **hints). - Поддержка синтаксиса
{% cycle %}, использующего аргументы, разделенные запятыми, будет удалена. - Предупреждение, которое выдает
Signerпри задании недопустимого разделителя, станет исключением.
1.9¶
Подробнее об этих изменениях см. в Django 1.7 release notes.
django.utils.dictconfigбудет удален.django.utils.importlibбудет удален.django.utils.tzinfoбудет удален.django.utils.unittestбудет удален.- Команда
syncdbбудет удалена. django.db.models.signals.pre_syncdbиdjango.db.models.signals.post_syncdbбудут удалены.allow_syncdbна маршрутизаторах базы данных больше не будет автоматически становитьсяallow_migrate.- Автоматическая синхронизация приложений без миграций будет удалена. Миграции станут обязательными для всех приложений, если вы не передадите параметру
--run-syncdbзначениеmigrate. - Команды управления SQL для приложений без миграций,
sql,sqlall,sqlclear,sqldropindexesиsqlindexes, будут удалены. - Поддержка автоматической загрузки приспособлений
initial_dataи начальных данных SQL будет удалена. - Все модели необходимо будет определить внутри установленного приложения или объявить явным образом
app_label. Более того, их нельзя будет импортировать до загрузки приложения. В частности, нельзя будет импортировать модели внутри корневого пакета своего приложения. - Модель и форма
IPAddressFieldбудут удалены. Поле-заглушка останется для совместимости с историческими миграциями. AppCommand.handle_app()больше не будет поддерживаться.RequestSiteиget_current_site()больше не будут импортироваться изdjango.contrib.sites.models.- Поддержка FastCGI через команду управления
runfcgiбудет удалена. Пожалуйста, развертывайте ваш проект, используя WSGI. django.utils.datastructures.SortedDictбудет удален. Вместо этого используйтеcollections.OrderedDictиз стандартной библиотеки Python.ModelAdmin.declared_fieldsetsбудет удален.- Экземпляры
util.pyв кодовой базе Django были переименованы вutils.pyв попытке унифицировать все ссылки на util и utils. Модули, которые обеспечивали обратную совместимость, будут удалены:django.contrib.admin.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.util
ModelAdmin.get_formsetsбудет удален.- Шим обратной совместимости, введенный для переименования метода
BaseMemcachedCache._get_memcache_timeout()вget_backend_timeout(), будет удален. - Опции
--naturalи-nдляdumpdataбудут удалены. - Аргумент
use_natural_keysдляserializers.serialize()будет удален. - Частный API
django.forms.forms.get_declared_fields()будет удален. - Возможность использовать
SplitDateTimeWidgetсDateTimeFieldбудет удалена. - Свойство
WSGIRequest.REQUESTбудет удалено. - Класс
django.utils.datastructures.MergeDictбудет удален. - Коды языков
zh-cnиzh-twбудут удалены и заменены на коды языковzh-hansиzh-hantсоответственно. - Внутренний
django.utils.functional.memoizeбудет удален. django.core.cache.get_cacheбудет удален. Добавьте подходящие записи вCACHESи используйтеdjango.core.cache.cachesвместо него.django.db.models.loadingбудет удален.- Передача вызываемых аргументов в querysets больше не будет возможна.
BaseCommand.requires_model_validationбудет удалено в пользуrequires_system_checks. Валидаторы администратора будут заменены проверками администратора.- Атрибуты
ModelAdmin.validator_classиdefault_validator_classбудут удалены. ModelAdmin.validate()будет удален.django.db.backends.DatabaseValidation.validate_fieldбудет удален в пользу методаcheck_field.- Команда управления
validateбудет удалена. django.utils.module_loading.import_by_pathбудет удален в пользуdjango.utils.module_loading.import_string.- Теги шаблонов
ssiиurlбудут удалены из библиотеки тегов шаблоновfuture(использовались в период устаревания версий 1.3/1.4). django.utils.text.javascript_quoteбудет удален.- Настройки тестирования базы данных как независимые записи в настройках базы данных с префиксом
TEST_больше не будут поддерживаться. - Опция
cache_choicesвModelChoiceFieldиModelMultipleChoiceFieldбудет удалена. - Значение по умолчанию атрибута
RedirectView.permanentизменится сTrueнаFalse. django.contrib.sitemaps.FlatPageSitemapбудет удален в пользуdjango.contrib.flatpages.sitemaps.FlatPageSitemap.- Частный API
django.test.utils.TestTemplateLoaderбудет удален. - Модуль
django.contrib.contenttypes.genericбудет удален. - Частные API
django.db.models.sql.where.WhereNode.make_atom()иdjango.db.models.sql.where.Constraintбудут удалены.
1.8¶
Подробнее об этих изменениях см. в Django 1.6 release notes.
django.contrib.commentsбудет удален.- Следующие API управления транзакциями будут удалены:
TransactionMiddleware,- декораторы и менеджеры контекста
autocommit,commit_on_successиcommit_manually, определенные вdjango.db.transaction, - функции
commit_unless_managedиrollback_unless_managed, также определенные вdjango.db.transaction, - настройка
TRANSACTIONS_MANAGED.
- Теги шаблонов
cycleиfirstofбудут автоэскейпировать свои аргументы. В версиях 1.6 и 1.7 это поведение обеспечивается версией этих тегов в библиотеке тегов шаблоновfuture. - Настройка
SEND_BROKEN_LINK_EMAILSбудет удалена. Вместо этого добавьте промежуточную программуdjango.middleware.common.BrokenLinkEmailsMiddlewareк настройкеMIDDLEWARE_CLASSES. django.middleware.doc.XViewMiddlewareбудет удален. Вместо этого используйтеdjango.contrib.admindocs.middleware.XViewMiddleware.Model._meta.module_nameбыл переименован вmodel_name.- Удалите обратно совместимые шиммы, введенные для переименования
get_query_setи подобных методов queryset. Это затрагивает следующие классы:BaseModelAdmin,ChangeList,BaseCommentNode,GenericForeignKey,Manager,SingleRelatedObjectDescriptorиReverseSingleRelatedObjectDescriptor. - Удалите шиммы обратной совместимости, введенные для переименования атрибутов
ChangeList.root_query_setиChangeList.query_set. django.views.defaults.shortcutбудет удален, как часть цели удаления всех ссылокdjango.contribиз основной кодовой базы Django. Вместо этого используйтеdjango.contrib.contenttypes.views.shortcut.django.conf.urls.shortcutтакже будет удален.- Поддержка модуля Python Imaging Library (PIL) будет удалена, поскольку он больше не поддерживается активно и не работает на Python 3.
- Следующие частные API будут удалены:
django.db.backenddjango.db.close_connection()django.db.backends.creation.BaseDatabaseCreation.set_autocommit()django.db.transaction.is_managed()django.db.transaction.managed()
django.forms.widgets.RadioInputбудет удален в пользуdjango.forms.widgets.RadioChoiceInput.- Модуль
django.test.simpleи классdjango.test.simple.DjangoTestSuiteRunnerбудут удалены. Вместо них используйтеdjango.test.runner.DiscoverRunner. - Модуль
django.test._doctestбудет удален. Вместо него используйте модуль doctest из стандартной библиотеки Python. - Настройка
CACHE_MIDDLEWARE_ANONYMOUS_ONLYбудет удалена. - Использование жестко закодированной Hold down «Control», или «Command» на Mac, для выбора более чем одного. строки для переопределения или добавления к предоставленным пользователем
help_textв формах для полей модели ManyToMany больше не будет выполняться Django ни на уровне модели, ни на уровне форм. - Методы
Model._meta.get_(add|change|delete)_permissionбудут удалены. - Ключ сессии
django_languageбольше не будет считываться для обратной совместимости. - Географические Sitemaps будут удалены (
django.contrib.gis.sitemaps.views.indexиdjango.contrib.gis.sitemaps.views.sitemap). django.utils.html.fix_ampersands, фильтр шаблоновfix_ampersandsиdjango.utils.html.clean_htmlбудут удалены после ускоренной депривации.
1.7¶
Подробнее об этих изменениях см. в Django 1.5 release notes.
- Модуль
django.utils.simplejsonбудет удален. Стандартная библиотека предоставляетjson, который следует использовать вместо него. - Функция
django.utils.itercompat.productбудет удалена. Вместо нее следует использовать встроенную версию Python. - Автокоррекция параметров INSTALLED_APPS и TEMPLATE_DIRS, когда они указаны в виде простой строки вместо кортежа, будет удалена и вызовет исключение.
- Аргумент
mimetypeв методах__init__HttpResponse,SimpleTemplateResponseиTemplateResponseбудет удален. Вместо него следует использоватьcontent_type. Это также относится к ярлыкуrender_to_response()и представлениям карты сайтаindex()иsitemap(). - Когда
HttpResponseинстанцируется с итератором, или когдаcontentустанавливается на итератор, этот итератор будет немедленно потреблен. - Настройка
AUTH_PROFILE_MODULEи методget_profile()в модели User будут удалены. - Команда управления
cleanupбудет удалена. Она заменяется наclearsessions. - Скрипт
daily_cleanup.pyбудет удален. - Аргумент с ключевым словом
depthбудет удален изselect_related(). - Недокументированные функции
get_warnings_state()/restore_warnings_state()изdjango.test.utilsи методыsave_warnings_state()/restore_warnings_state()django.test.*TestCase устарели. Вместо них используйте менеджер контекстаwarnings.catch_warnings, доступный начиная с Python 2.6. - Недокументированный метод
check_for_test_cookieвAuthenticationFormбудет удален после ускоренной депривации. Пользователи, подклассифицирующие эту форму, должны удалить вызовы этого метода и вместо этого убедиться, что их представления, связанные с авторизацией, защищены CSRF, что гарантирует включение cookies. - Версия
django.contrib.auth.views.password_reset_confirm(), поддерживающая идентификаторы пользователей в кодировке base36 (django.contrib.auth.views.password_reset_confirm_uidb36), будет удалена. Если ваш сайт работает на Django 1.6 уже болееPASSWORD_RESET_TIMEOUT_DAYS, это изменение не будет иметь никакого эффекта. Если нет, то все ссылки на сброс пароля, созданные до обновления до Django 1.7, не будут работать после обновления. - Микшер
django.utils.encoding.StrAndUnicodeбудет удален.
1.6¶
Подробнее об этих изменениях см. в Django 1.4 release notes.
django.contrib.databrowseбудет удален.django.contrib.localflavorбудет удален после ускоренной депривации.django.contrib.markupбудет удален после ускоренной депривации.- Модули совместимости
django.utils.copycompatиdjango.utils.hashcompat, а также функцииdjango.utils.itercompat.allиdjango.utils.itercompat.anyбудут удалены. Вместо них следует использовать встроенные версии Python. - Декораторы
csrf_response_exemptиcsrf_view_exemptбудут удалены. Начиная с версии 1.4csrf_response_exemptявляется неоператором (возвращает ту же функцию), аcsrf_view_exemptявляется синонимомdjango.views.decorators.csrf.csrf_exempt, который следует использовать для его замены. - Бэкенд
django.core.cache.backends.memcached.CacheClassбыл разделен на два в Django 1.3 для того, чтобы ввести поддержку PyLibMC. ИсторическийCacheClassбудет удален в пользуdjango.core.cache.backends.memcached.MemcachedCache. - Объекты с префиксом UK в
django.contrib.localflavor.ukбудут доступны только через их имена с префиксом GB (GB - это правильный код ISO 3166 для Соединенного Королевства). - Настройки
IGNORABLE_404_STARTSиIGNORABLE_404_ENDSбыли заменены наIGNORABLE_404_URLSв релизе 1.4. Они будут удалены. - Мастер форм был рефакторингован для использования представлений на основе классов с подключаемыми бэкендами в версии 1.4. Предыдущая реализация будет удалена.
- Устаревшие способы вызова
cache_page()будут удалены. - Шим обратной совместимости для автоматического добавления фильтра debug-false в обработчик логирования
'mail_admins'будет удален. НастройкаLOGGINGдолжна включать этот фильтр в явном виде, если он желателен. - Встроенные функции усечения
django.utils.text.truncate_words()иdjango.utils.text.truncate_html_words()будут удалены в пользу классаdjango.utils.text.Truncator. - Класс
django.contrib.gis.geoip.GeoIPбыл перенесен вdjango.contrib.gis.geoipв 1.4 - ярлык вdjango.contrib.gis.utilsбудет удален. django.conf.urls.defaultsбудет удалена. Функцииinclude(),patterns()иurl(), а такжеhandler404иhandler500теперь доступны черезdjango.conf.urls.- Функции
setup_environ()иexecute_manager()будут удалены изdjango.core.management. Это также означает, что старый (до версии 1.4) стиль файлаmanage.pyбольше не будет работать. - Установка флагов
is_safeиneeds_autoescapeв качестве атрибутов функций фильтрации шаблонов больше не будет поддерживаться. - Атрибут
HttpRequest.raw_post_dataбыл переименован вHttpRequest.bodyв версии 1.4. Обратная совместимость будет удалена –HttpRequest.raw_post_dataбольше не будет работать. - Значение параметра
post_url_continueвModelAdmin.response_add()должно быть либоNone(для перенаправления на страницу редактирования вновь созданного объекта), либо предварительно отформатированный url. Строковые форматы, такие как предыдущее значение по умолчанию'../%s/', больше не будут приниматься.
1.5¶
Подробнее об этих изменениях см. в Django 1.3 release notes.
- Запуск Django без
SECRET_KEYприведет к исключению, а не кDeprecationWarning. (Это ускорение от обычного пути обесценивания; см. Django 1.4 release notes). - Обработчик запросов
mod_pythonбудет удален. Вместо него следует использовать обработчикmod_wsgi. - Атрибут
templateна объектахdjango.test.client.Response, возвращаемых командой test client, будет удален. Вместо него следует использовать атрибутtemplates. - Код
django.test.simple.DjangoTestRunnerбудет удален. Вместо него используйтеunittest-родной класс. Возможностиdjango.test.simple.DjangoTestRunner(включая fail-fast и завершение теста Ctrl-C) могут быть предоставленыunittest.TextTestRunner. - Недокументированная функция
django.contrib.formtools.utils.security_hashбудет удалена, вместо нее используйтеdjango.contrib.formtools.utils.form_hmac - Модули общих представлений, основанные на функциях, будут удалены в пользу их эквивалентов, основанных на классах, изложенных here.
- Символ
django.core.servers.basehttp.AdminMediaHandlerбудет удален. Вместо него используйтеdjango.contrib.staticfiles.handlers.StaticFilesHandler. - Библиотека тегов шаблонов
adminmediaи тег шаблона{% admin_media_prefix %}будут удалены в пользу общей обработки статических файлов. (Это быстрее, чем обычный путь депривации; см. Django 1.4 release notes). - Шаблонные теги
urlиssiбудут изменены таким образом, что первым аргументом каждого тега будет переменная шаблона, а не подразумеваемая строка. В версии 1.4 такое поведение обеспечивается версией тега в библиотеке тегов шаблоновfuture. - Команды управления
resetиsqlresetбудут удалены. - Бэкенды аутентификации должны будут поддерживать передачу неактивного пользователя во все методы, работающие с разрешениями. Атрибут
supports_inactive_userбольше не будет проверяться и может быть удален из пользовательских бэкендов. transform()вызовет ошибкуGEOSExceptionпри вызове геометрии, не имеющей значения SRID.django.http.CompatCookieбудет удален в пользуdjango.http.SimpleCookie.django.core.context_processors.PermWrapperиdjango.core.context_processors.PermLookupDictбудут удалены в пользу соответствующихdjango.contrib.auth.context_processors.PermWrapperиdjango.contrib.auth.context_processors.PermLookupDict, соответственно.- Параметры
MEDIA_URLилиSTATIC_URLдолжны заканчиваться косой чертой, чтобы обеспечить последовательный способ объединения путей в шаблонах. django.db.models.fields.URLField.verify_existsбудет удалена. Эта функция была упразднена в версии 1.3.1 из-за неустранимых проблем с безопасностью и производительностью, и теперь срок ее упразднения будет несколько ускорен.- Переводы, расположенные в так называемом пути проекта, будут игнорироваться в процессе сборки переводов, выполняемом во время исполнения. Для этой же задачи можно использовать параметр
LOCALE_PATHS, включив в его значение путь файловой системы к каталогуlocale, содержащему неспецифические для приложения переводы. - Приложение Markup contrib больше не будет поддерживать версии библиотеки Python-Markdown ранее 2.1. Был использован ускоренный график, так как это было связано с безопасностью.
- Настройка
CACHE_BACKENDбудет удалена. Бэкэнд(ы) кэша должен быть указан(ы) в настройкеCACHES.
1.4¶
Подробнее об этих изменениях см. в Django 1.2 release notes.
CsrfResponseMiddlewareиCsrfMiddlewareбудут удалены. Используйте тег шаблона{% csrf_token %}внутри форм для включения защиты от CSRF.CsrfViewMiddlewareостанется и будет включен по умолчанию.- Старый импорт для функциональности CSRF (
django.contrib.csrf.*), который перешел в ядро в версии 1.2, будет удален. - Модуль
django.contrib.gis.db.backendбудет удален в пользу конкретных бэкендов. SMTPConnectionбудет удален в пользу общего API бэкенда электронной почты.- Многие функции генерации SQL на бэкендах баз данных будут удалены.
- Возможность использовать семейство параметров верхнего уровня
DATABASE_*для определения соединений с базой данных будет удалена. - Возможность использовать сокращенную нотацию для указания бэкенда базы данных (например,
sqlite3вместоdjango.db.backends.sqlite3) будет удалена. - Методы
get_db_prep_save,get_db_prep_valueиget_db_prep_lookupдолжны будут поддерживать несколько баз данных. - Модель
Message(вdjango.contrib.auth), связанный с ней менеджер в моделиUser(user.message_set) и связанные с ним методы (user.message_set.create()иuser.get_and_delete_messages()) будут удалены. Вместо них следует использовать messages framework. Связанная переменнаяmessages, возвращаемая процессором контекста auth, также будет удалена. Обратите внимание, что это означает, что приложение администратора будет зависеть от процессора контекста сообщений. - Бэкенды аутентификации должны будут поддерживать параметр
objдля проверки разрешений. Атрибутsupports_object_permissionsбольше не будет проверяться и может быть удален из пользовательских бэкендов. - Бэкенды аутентификации должны будут поддерживать передачу класса
AnonymousUserво все методы, работающие с разрешениями. Переменнаяsupports_anonymous_userбольше не будет проверяться и может быть удалена из пользовательских бэкендов. - Возможность указать вызываемый загрузчик шаблонов, а не класс
Loaderбудет удалена, как и функцииload_template_source, включенные во встроенные загрузчики шаблонов для обратной совместимости. django.utils.translation.get_date_formats()иdjango.utils.translation.get_partial_date_formats(). Эти функции будут удалены; используйте локально-ориентированнуюdjango.utils.formats.get_format()для получения соответствующих форматов.- В
django.forms.fields, константы:DEFAULT_DATE_INPUT_FORMATS,DEFAULT_TIME_INPUT_FORMATSиDEFAULT_DATETIME_INPUT_FORMATSбудут удалены. Используйтеdjango.utils.formats.get_format()для получения соответствующих форматов. - Возможность использовать бегунок тестирования на основе функций будет удалена вместе с бегунком тестирования
django.test.simple.run_tests(). - Представление
views.feed()и классfeeds.Feedвdjango.contrib.syndicationбудут удалены. Вместо них следует использовать основанный на классах видviews.Feed. django.core.context_processors.auth. В этом выпуске старый метод будет удален в пользу нового метода вdjango.contrib.auth.context_processors.auth.- Бэкенд базы данных
postgresqlбудет удален, вместо него используйте бэкендpostgresql_psycopg2. - Код языка
noбудет удален и заменен на код языкаnb. - Бэкенды аутентификации должны будут определять атрибут boolean
supports_inactive_userдо версии 1.5, когда будет предполагаться, что все бэкенды будут обрабатывать неактивных пользователей. django.db.models.fields.XMLFieldбудет удалено. Это поле было устаревшим в релизе 1.3. Был использован график ускоренной амортизации, поскольку поле не выполняло никакой роли, кроме роли простогоTextFieldс момента удаленияoldforms. Все случаи использованияXMLFieldмогут быть заменены наTextField.- Недокументированный параметр
mixinк методуopen()вdjango.core.files.storage.Storage(и подклассах) будет удален.
1.3¶
Подробнее об этих изменениях см. в Django 1.1 release notes.
AdminSite.root(). Этот способ подключения URL-адресов администратора будет удален в пользу включенияadmin.site.urls.- Бэкенды аутентификации должны определить булевы атрибуты
supports_object_permissionsиsupports_anonymous_userдо версии 1.4, после чего будет считаться, что все бэкенды будут поддерживать эти опции.