Временная шкала устаревания Django¶
Этот документ описывает, когда различные части Django будут удалены или изменены несовместимым с предыдущими версиями способом, после их обесценивания, согласно deprecation policy. Более подробную информацию о каждом элементе часто можно найти в примечаниях к релизам двух предыдущих версий.
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()
будет удалена. - Методы
FileField
get_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-localflavor
1.1+.- Атрибут
original_content_type_id
наdjango.contrib.admin.helpers.InlineAdminForm
будет удален. - Шим обратной совместимости, позволяющий определять
FormMixin.get_form()
без значения по умолчанию для его аргументаform_class
, будет удален. - Следующие настройки будут удалены:
ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_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
будет удалена. - Агрегатные методы
GeoQuerySet
collect()
,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.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.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.backend
django.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, после чего будет считаться, что все бэкенды будут поддерживать эти опции.