Временная шкала устаревания Django¶
Этот документ описывает, когда различные части Django будут удалены или изменены несовместимым с предыдущими версиями способом, после их обесценивания, согласно deprecation policy. Более подробную информацию о каждом элементе часто можно найти в примечаниях к релизам двух предыдущих версий.
5.1¶
See the Django 4.2 release notes for more details on these changes.
- The
BaseUserManager.make_random_password()method will be removed. - The model’s
Meta.index_togetheroption will be removed. - The
length_istemplate filter will be removed. - The
django.contrib.auth.hashers.SHA1PasswordHasher,django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher, anddjango.contrib.auth.hashers.UnsaltedMD5PasswordHasherwill be removed. - The model
django.contrib.postgres.fields.CICharField,django.contrib.postgres.fields.CIEmailField, anddjango.contrib.postgres.fields.CITextFieldwill be removed. Stub fields will remain for compatibility with historical migrations. - The
django.contrib.postgres.fields.CITextmixin will be removed. - The
map_widthandmap_heightattributes ofBaseGeometryWidgetwill be removed. - The
SimpleTestCase.assertFormsetError()method will be removed. - The
TransactionTestCase.assertQuerysetEqual()method will be removed. - Поддержка передачи закодированных строковых литералов JSON в
JSONFieldи связанных с ними поисков и выражений будет удалена. - Support for passing positional arguments to
SignerandTimestampSignerwill be removed.
5.0¶
See the Django 4.0 release notes for more details on these changes.
- The
SERIALIZEtest setting will be removed. - The undocumented
django.utils.baseconvmodule will be removed. - The undocumented
django.utils.datetime_safemodule will be removed. - Значение по умолчанию настройки
USE_TZизменится сFalseнаTrue. - Протокол по умолчанию для карт сайта, построенных вне контекста запроса, изменится с
'http'на'https'. - The
extra_testsargument forDiscoverRunner.build_suite()andDiscoverRunner.run_tests()will be removed. - Совокупности
django.contrib.postgres.aggregates.ArrayAgg,JSONBAggиStringAggбудут возвращатьNoneпри отсутствии строк вместо[],[]и''соответственно. - The
USE_L10Nsetting will be removed. - The
USE_DEPRECATED_PYTZtransitional setting will be removed. - Support for
pytztimezones will be removed. - The
is_dstargument will be removed from: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()
- The
django.contrib.gis.admin.GeoModelAdminandOSMGeoAdminclasses will be removed. - The undocumented
BaseForm._html_output()method will be removed. - Возможность возвращать
str, а неSafeString, при рендерингеErrorDictиErrorListбудет удалена.
See the Django 4.1 release notes for more details on these changes.
- The
SitemapIndexItem.__str__()method will be removed. - The
CSRF_COOKIE_MASKEDtransitional setting will be removed. - The
nameargument ofdjango.utils.functional.cached_property()will be removed. - The
opclassesargument ofdjango.contrib.postgres.constraints.ExclusionConstraintwill be removed. - Недокументированная возможность передачи
errors=NoneвSimpleTestCase.assertFormError()иassertFormsetError()будет удалена. django.contrib.sessions.serializers.PickleSerializerwill be removed.- Использование
QuerySet.iterator()в кверисете, который выполняет предварительную выборку связанных объектов без указания аргументаchunk_size, больше не будет разрешено. - Passing unsaved model instances to related filters will no longer be allowed.
created=Truewill be required in the signature ofRemoteUserBackend.configure_user()subclasses.- Поддержка выхода из системы через запросы
GETвdjango.contrib.auth.views.LogoutViewиdjango.contrib.auth.views.logout_then_login()будет удалена. - The
django.utils.timezone.utcalias todatetime.timezone.utcwill be removed. - Передача объекта ответа и имени формы/формсета в
SimpleTestCase.assertFormError()иassertFormsetError()больше не будет разрешена. - The
django.contrib.gis.admin.OpenLayersWidgetwill be removed. - The
django.contrib.auth.hashers.CryptPasswordHasherwill be removed. - Шаблоны
"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.MemcachedCachewill be removed.- Support for the pre-Django 3.2 format of messages used by
django.contrib.messages.storage.cookie.CookieStoragewill be removed.
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()(закодированных алгоритмом SHA-1) вdjango.core.signing.loads(), существовавших до выхода Django 3.1, будет удалена. - Поддержка пользовательских сессий до версии Django 3.1 (которые используют алгоритм SHA-1) будет удалена.
- The
get_responseargument fordjango.utils.deprecation.MiddlewareMixin.__init__()will be required and won’t acceptNone. - Аргумент
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будет удален в пользуcontent_type. - Аргумент
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будет удалена. - Поддержка :py<<<<0 >>> будет прекращена для пользовательских команд управления (заменена на :py<<<<1 >>>).
- Класс
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. - The version of
django.contrib.auth.views.password_reset_confirm()that supports base36 encoded user IDs (django.contrib.auth.views.password_reset_confirm_uidb36) will be removed. If your site has been running Django 1.6 for more thanPASSWORD_RESET_TIMEOUT_DAYS, this change will have no effect. If not, then any password reset links generated before you upgrade to Django 1.7 won’t work after the upgrade. - Микшер
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будет удален в пользу конкретных бэкендов. SMTPConnectionwill be removed in favor of a generic email backend 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, после чего будет считаться, что все бэкенды будут поддерживать эти опции.