Django 弃用时间表 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/internals/deprecation
跳转至:导航、​搜索

Django 弃用时间表

本文档概述了根据 弃用政策 弃用后,Django 的各个部分何时会以向后不兼容的方式被删除或更改。 有关每个项目的更多详细信息,通常可以在之前两个版本的发行说明中找到。

4.1

有关这些更改的更多详细信息,请参阅 Django 3.2 发行说明

  • 将删除对将不支持使用 copy.deepcopy() 创建深拷贝的对象分配给 TestCase.setUpTestData() 中的类属性的支持。
  • BaseCommand.requires_system_checks 不支持布尔值。
  • django.core.validators.EmailValidatorwhitelist 参数和 domain_whitelist 属性将被删除。
  • default_app_config 模块变量将被删除。
  • 与字符串值相比,TransactionTestCase.assertQuerysetEqual() 将不再在查询集上自动调用 repr()
  • django.core.cache.backends.memcached.MemcachedCache 将被移除。
  • 将删除对 django.contrib.messages.storage.cookie.CookieStorage 使用的 Django 3.2 之前的消息格式的支持。


4.0

有关这些更改的更多详细信息,请参阅 Django 3.0 发行说明

  • 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 发行说明

  • PASSWORD_RESET_TIMEOUT_DAYS 设置将被删除。
  • :lookup:`isnull` 以非布尔值作为右侧的查找的未记录用法将不再被允许。
  • django.db.models.query_utils.InvalidQuery 异常类将被删除。
  • django-admin.py 入口点将被删除。
  • HttpRequest.is_ajax() 方法将被删除。
  • django.contrib.messages.storage.cookie.CookieStorage 使用的 cookie 值的 pre-Django 3.1 编码格式的支持将被删除。
  • 管理站点中对 Django 3.1 之前的密码重置令牌(使用 SHA-1 散列算法)的支持将被删除。
  • 将删除对 Django 3.1 之前的 session 编码格式的支持。
  • 将删除对 Django 3.1 之前的 django.core.signing.Signer 签名(使用 SHA-1 算法编码)的支持。
  • 将删除对 django.core.signing.loads() 中的 pre-Django 3.1 django.core.signing.dumps() 签名(使用 SHA-1 算法编码)的支持。
  • 将删除对 Django 3.1 之前的用户会话(使用 SHA-1 算法)的支持。
  • django.utils.deprecation.MiddlewareMixin.__init__()get_response 参数将是必需的,并且不会接受 None
  • django.dispatch.Signalproviding_args 参数将被删除。
  • django.utils.crypto.get_random_string()length 参数将是必需的。
  • ModelMultipleChoiceFieldlist 消息将被删除。
  • 将删除对将原始列别名传递给 QuerySet.order_by() 的支持。
  • 模型 NullBooleanField 将被移除。 为了与历史迁移兼容,将保留存根字段。
  • django.conf.urls.url() 将被移除。
  • 模型 django.contrib.postgres.fields.JSONField 将被移除。 为了与历史迁移兼容,将保留存根字段。
  • django.contrib.postgres.forms.JSONFielddjango.contrib.postgres.fields.jsonb.KeyTransformdjango.contrib.postgres.fields.jsonb.KeyTextTransform 将被移除。
  • {% ifequal %}{% ifnotequal %} 模板标签将被删除。
  • DEFAULT_HASHING_ALGORITHM 过渡设置将被移除。


3.1

有关这些更改的更多详细信息,请参阅 Django 2.2 发行说明

  • django.utils.timezone.FixedOffset 将被移除。
  • django.core.paginator.QuerySetPaginator 将被移除。
  • 模型的 Meta.ordering 将不再影响 GROUP BY 查询。
  • django.contrib.postgres.fields.FloatRangeFielddjango.contrib.postgres.forms.FloatRangeField 将被移除。
  • FILE_CHARSET 设置将被删除。
  • django.contrib.staticfiles.storage.CachedStaticFilesStorage 将被移除。
  • RemoteUserBackend.configure_user() 将需要 request 作为第一个位置参数。
  • 将移除对 SimpleTestCase.allow_database_queriesTransactionTestCase.multi_db 的支持。


3.0

有关这些更改的更多详细信息,请参阅 Django 2.0 发行说明

  • django.db.backends.postgresql_psycopg2 模块将被移除。
  • django.shortcuts.render_to_response() 将被移除。
  • DEFAULT_CONTENT_TYPE 设置将被删除。
  • HttpRequest.xreadlines() 将被移除。
  • 将移除对 Field.from_db_value()Expression.convert_value()context 参数的支持。
  • QuerySet.earliest()latest()field_name 关键字参数将被删除。

有关这些更改的更多详细信息,请参阅 Django 2.1 发行说明

  • django.contrib.gis.db.models.functions.ForceRHR 将被移除。
  • django.utils.http.cookie_date() 将被移除。
  • staticfilesadmin_static 模板标签库将被删除。
  • django.contrib.staticfiles.templatetags.static() 将被移除。
  • 允许在没有 obj 参数的情况下定义 InlineModelAdmin.has_add_permission() 的垫片将被删除。


2.1

有关这些更改的更多详细信息,请参阅 Django 1.11 发行说明

  • contrib.auth.views.login()logout()password_change()password_change_done()password_reset()password_reset_done()password_reset_confirm()password_reset_complete() 将被移除。
  • contrib.auth.views.logout_then_login()extra_context参数将被移除。
  • django.test.runner.setup_databases() 将被移除。
  • django.utils.translation.string_concat() 将被移除。
  • django.core.cache.backends.memcached.PyLibMCCache 将不再支持将 pylibmc 行为设置作为 OPTIONS 的顶级属性传递。
  • django.utils.http.is_safe_url()host参数将被移除。
  • 将删除渲染 {% include %} 模板标记时引发的异常静音。
  • DatabaseIntrospection.get_indexes() 将被移除。
  • authenticate() 认证后端方法将需要 request 作为第一个位置参数。
  • django.db.models.permalink() 装饰器将被移除。
  • USE_ETAGS 设置将被删除。 CommonMiddlewaredjango.utils.cache.patch_response_headers() 将不再设置 ETag。
  • Model._meta.has_auto_field 属性将被移除。
  • url() 支持正则表达式组中的内联标志((?i)(?L)(?m)(?s) 和 [ X119X]) 将被删除。
  • 将删除对不带 renderer 参数的 Widget.render() 方法的支持。


2.0

有关这些更改的更多详细信息,请参阅 Django 1.9 发行说明

  • django.dispatch.signals.Signal.disconnect()weak 参数将被删除。
  • django.db.backends.base.BaseDatabaseOperations.check_aggregate_support() 将被移除。
  • django.forms.extras 包将被删除。
  • assignment_tag 助手将被删除。
  • assertsRedirectshost 参数将被删除。 当路径相同时,允许将绝对 URL 视为等于相对 URL 的兼容性层也将被删除。
  • Field.rel 将被移除。
  • Field.remote_field.to 属性将被移除。
  • ForeignKeyOneToOneFieldon_delete 参数将是必需的。
  • django.db.models.fields.add_lazy_relation() 将被移除。
  • 当启用时区支持时,不支持时区的数据库后端将不再将感知日期时间转换为 UTC 中的原始值,当这些值作为参数传递给在 ORM 之外执行的 SQL 查询时,例如 cursor.execute()
  • django.contrib.auth.tests.utils.skipIfCustomUser() 装饰器将被移除。
  • GeoManagerGeoQuerySet 类将被删除。
  • 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__() 方法将被删除。
  • 将取消对具有单个位置参数的自定义错误视图的支持。
  • django.utils.feedgenerator.Atom1Feeddjango.utils.feedgenerator.RssFeedmime_type属性将被移除,以支持content_type
  • django.conf.urls.include()app_name 参数将被删除。
  • 将删除对将 3 元组作为第一个参数传递给 include() 的支持。
  • 将删除对设置没有应用程序命名空间的 URL 实例命名空间的支持。
  • Field._get_val_from_obj() 将被移除以支持 [X38X]。
  • django.template.loaders.eggs.Loader 将被移除。
  • contrib.auth 视图的 current_app 参数将被删除。
  • SimpleTestCase.assertRaisesMessage()callable_obj 关键字参数将被删除。
  • 将删除对 ModelAdmin 方法上的 allow_tags 属性的支持。
  • SyndicationFeed.add_item()enclosure 关键字参数将被删除。
  • django.template.base.Origindjango.template.loader.LoaderOrigindjango.template.base.StringOrigin 别名将被删除。

有关这些更改的更多详细信息,请参阅 Django 1.10 发行说明

  • makemigrations --exit 选项将被删除。
  • 将删除对直接分配给反向外键或多对多关系的支持。
  • django.contrib.gis.geos.GEOSGeometryget_srid()set_srid() 方法将被删除。
  • get_x()set_x()get_y()set_y()get_z()set_z()方法django.contrib.gis.geos.Point ] 将被删除。
  • django.contrib.gis.geos.Pointget_coords()set_coords() 方法将被删除。
  • django.contrib.gis.geos.MultiPolygoncascaded_union 属性将被移除。
  • 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() 作为方法。
  • Model._meta的私有属性virtual_fields将被移除。
  • Field.contribute_to_class() 中的私有关键字参数 virtual_onlyModel._meta.add_field() 中的 virtual 将被删除。
  • javascript_catalog()json_catalog() 视图将被删除。
  • django.contrib.gis.utils.precision_wkt() 功能将被移除。
  • 在多表继承中,将删除 OneToOneFieldparent_link 的隐式提升。
  • 将移除对 Widget._format_value() 的支持。
  • FileField 方法 get_directory_name()get_filename() 将被删除。
  • mark_for_escaping() 函数及其使用的类:EscapeDataEscapeBytesEscapeTextEscapeStringEscapeUnicode被移除。
  • 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 发行说明

  • 将删除对直接调用 SQLCompiler 作为调用其 quote_name_unless_alias 方法的别名的支持。
  • cyclefirstof 模板标签将从 future 模板标签库中移除(在 1.6/1.7 弃用期间使用)。
  • django.conf.urls.patterns() 将被移除。
  • 将删除对 django.conf.urls.i18n.i18n_patterns()prefix 参数的支持。
  • SimpleTestCase.urls 将被移除。
  • for 模板标签中使用不正确的解压值计数将引发异常而不是静默失败。
  • 将删除使用虚线 Python 路径反转 URL 的功能。
  • 将删除为 LOGIN_URLLOGIN_REDIRECT_URL 设置使用虚线 Python 路径的功能。
  • 自定义管理命令将取消对 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 的以下方法和属性将被移除:
    • 属性:aggregatesaggregate_select
    • 方法:add_aggregateset_aggregate_maskappend_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()
  • django.forms.RegexFielderror_message 参数将被删除。
  • unordered_list 过滤器将不再支持旧样式列表。
  • 将删除对 url() 字符串 view 参数的支持。
  • 将删除将 django.forms.Form._has_changed() 重命名为 has_changed() 的向后兼容垫片。
  • removetags 模板过滤器将被移除。
  • django.utils.html中的remove_tags()strip_entities()功能将被移除。
  • django.contrib.auth.views.password_reset()is_admin_site 参数将被删除。
  • django.db.models.field.subclassing.SubfieldBase 将被移除。
  • django.utils.checksums 将被移除; 它的功能包含在 django-localflavor 1.1+ 中。
  • django.contrib.admin.helpers.InlineAdminFormoriginal_content_type_id 属性将被移除。
  • 将删除允许定义 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 将被删除。
  • get_template()select_template() 返回的 Django 模板对象将不再接受 render() 方法中的 Context
  • 模板响应 API 将强制使用 dict 和后端相关模板对象,而不是分别使用 ContextTemplate
  • 以下函数和类的 current_app 参数将被删除:
    • django.shortcuts.render()
    • django.template.Context()
    • django.template.RequestContext()
    • django.template.response.TemplateResponse()
  • 以下功能的 dictionarycontext_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 将被移除。
  • migrate管理命令的--list选项将被删除。
  • ssi 模板标签将被删除。
  • 将删除对 if 模板标签中的 = 比较运算符的支持。
  • 允许在没有 max_length 参数的情况下定义 Storage.get_available_name()Storage.save() 的向后兼容性垫片将被删除。
  • 将删除对 ModelFormMixin.success_url 中旧的 %(<foo>)s 语法的支持。
  • 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 发行说明

  • django.utils.dictconfig 将被移除。
  • django.utils.importlib 将被移除。
  • django.utils.tzinfo 将被移除。
  • django.utils.unittest 将被移除。
  • syncdb 命令将被删除。
  • django.db.models.signals.pre_syncdbdjango.db.models.signals.post_syncdb 将被移除。
  • 数据库路由器上的 allow_syncdb 将不再自动变为 allow_migrate
  • 没有迁移的应用程序自动同步将被删除。 除非您将 --run-syncdb 选项传递给 migrate,否则所有应用程序都必须进行迁移。
  • 没有迁移的应用程序的 SQL 管理命令 sqlsqlallsqlclearsqldropindexessqlindexes 将被删除。
  • 对自动加载 initial_data 夹具和初始 SQL 数据的支持将被删除。
  • 所有模型都需要在已安装的应用程序中定义或声明显式 app_label。 此外,在加载应用程序之前无法导入它们。 特别是,无法在其应用程序的根包中导入模型。
  • 模型和表格 IPAddressField 将被删除。 为了与历史迁移兼容,将保留存根字段。
  • AppCommand.handle_app() 将不再受支持。
  • RequestSiteget_current_site() 将不再可从 django.contrib.sites.models 导入。
  • 通过 runfcgi 管理命令的 FastCGI 支持将被删除。 请使用 WSGI 部署您的项目。
  • django.utils.datastructures.SortedDict 将被移除。 请改用 Python 标准库中的 collections.OrderedDict
  • ModelAdmin.declared_fieldsets 将被移除。
  • Django 代码库中的 util.py 实例已重命名为 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() 而引入的向后兼容性垫片。
  • :djadmin:`dumpdata`--natural-n 选项将被删除。
  • serializers.serialize()use_natural_keys 参数将被删除。
  • 私有 API django.forms.forms.get_declared_fields() 将被删除。
  • SplitDateTimeWidgetDateTimeField 一起使用的功能将被移除。
  • WSGIRequest.REQUEST 属性将被删除。
  • django.utils.datastructures.MergeDict 将被删除。
  • zh-cnzh-tw 语言代码将被删除,分别替换为 zh-hanszh-hant 语言代码。
  • 内部 django.utils.functional.memoize 将被移除。
  • django.core.cache.get_cache 将被移除。 将合适的条目添加到 :setting:`CACHES` 并使用 django.core.cache.caches 代替。
  • django.db.models.loading 将被移除。
  • 将不再可能将可调用参数传递给查询集。
  • BaseCommand.requires_model_validation 将被移除以支持 [X38X]。 管理员验证器将被管理员检查取代。
  • ModelAdmin.validator_classdefault_validator_class 属性将被移除。
  • ModelAdmin.validate() 将被移除。
  • django.db.backends.DatabaseValidation.validate_field 将被移除以支持 check_field 方法。
  • validate 管理命令将被删除。
  • django.utils.module_loading.import_by_path 将被移除以支持 [X38X]。
  • ssiurl 模板标签将从 future 模板标签库中移除(在 1.3/1.4 弃用期间使用)。
  • django.utils.text.javascript_quote 将被移除。
  • 将不再支持数据库测试设置作为数据库设置中的独立条目,前缀为 TEST_
  • ModelChoiceFieldModelMultipleChoiceFieldcache_choices 选项将被删除。
  • RedirectView.permanent 属性的默认值将从 True 更改为 False
  • django.contrib.sitemaps.FlatPageSitemap 将被移除以支持 [X38X]。
  • 私有 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 发行说明

  • django.contrib.comments 将被移除。
  • 以下事务管理 API 将被删除:
    • TransactionMiddleware,
    • 装饰器和上下文管理器 autocommitcommit_on_successcommit_manually,在 django.db.transaction 中定义,
    • 函数 commit_unless_managedrollback_unless_managed,也在 django.db.transaction 中定义,
    • TRANSACTIONS_MANAGED 设置。
  • :ttag:`cycle`:ttag:`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 和类似查询集方法而引入的向后兼容垫片。 这会影响以下类别:BaseModelAdminChangeListBaseCommentNodeGenericForeignKeyManagerSingleRelatedObjectDescriptorReverseSingleRelatedObjectDescriptor
  • 删除为重命名属性 ChangeList.root_query_setChangeList.query_set 而引入的向后兼容垫片。
  • django.views.defaults.shortcut 将被删除,作为从核心 Django 代码库中删除所有 django.contrib 引用的目标的一部分。 而是使用 django.contrib.contenttypes.views.shortcutdjango.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 将被移除以支持 [X38X]。
  • 模块 django.test.simple 和类 django.test.simple.DjangoTestSuiteRunner 将被删除。 而是使用 django.test.runner.DiscoverRunner
  • 模块 django.test._doctest 将被移除。 而是使用 Python 标准库中的 doctest 模块。
  • CACHE_MIDDLEWARE_ANONYMOUS_ONLY 设置将被删除。
  • 使用硬编码 在 Mac 上按住“Control”或“Command”选择多个. 字符串以覆盖或附加到用户提供的 help_text 表单中ManyToMany 模型字段将不再由 Django 在模型或表单层执行。
  • Model._meta.get_(add|change|delete)_permission 方法将被删除。
  • 为了向后兼容,将不再读取会话密钥 django_language
  • 地理站点地图将被删除(django.contrib.gis.sitemaps.views.indexdjango.contrib.gis.sitemaps.views.sitemap)。
  • django.utils.html.fix_ampersandsfix_ampersands 模板过滤器和 django.utils.html.clean_html 将在加速弃用后被移除。


1.7

有关这些更改的更多详细信息,请参阅 Django 1.5 发行说明

  • 模块 django.utils.simplejson 将被移除。 标准库提供了应该使用的 json
  • 功能 django.utils.itercompat.product 将被移除。 应改用 Python 内置版本。
  • 当 INSTALLED_APPS 和 TEMPLATE_DIRS 设置被指定为纯字符串而不是元组时,它们的自动更正将被删除并引发异常。
  • HttpResponseSimpleTemplateResponseTemplateResponse__init__ 方法的 mimetype 参数将被删除。 应该使用 content_type 代替。 这也适用于 render_to_response() 快捷方式和站点地图视图,index()sitemap()
  • HttpResponse 使用迭代器实例化时,或者当 content 设置为迭代器时,该迭代器将立即被消耗。
  • 用户模型上的 AUTH_PROFILE_MODULE 设置和 get_profile() 方法将被删除。
  • cleanup 管理命令将被删除。 它被替换为 clearsessions
  • daily_cleanup.py 脚本将被删除。
  • depth 关键字参数将从 select_related() 中删除。
  • 未记录的 get_warnings_state()/restore_warnings_state() 函数来自 django.test.utilssave_warnings_state()/restore_warnings_state() django.test。 *TestCase 方法已弃用。 改用从 Python 2.6 开始可用的 warnings.catch_warnings 上下文管理器。
  • AuthenticationForm 中未记录的 check_for_test_cookie 方法将在加速弃用后被删除。 子类化此表单的用户应删除对此方法的调用,并确保他们的身份验证相关视图受 CSRF 保护,从而确保启用 cookie。
  • 支持 base36 编码用户 ID (django.contrib.auth.views.password_reset_confirm_uidb36) 的 django.contrib.auth.views.password_reset_confirm() 版本将被删除。 如果您的站点运行 Django 1.6 的时间超过 :setting:`PASSWORD_RESET_TIMEOUT_DAYS`,则此更改将无效。 如果没有,那么在升级到 Django 1.7 之前生成的任何密码重置链接在升级后都将不起作用。
  • django.utils.encoding.StrAndUnicode 混音将被移除。


1.6

有关这些更改的更多详细信息,请参阅 Django 1.4 发行说明

  • django.contrib.databrowse 将被移除。
  • django.contrib.localflavor 将在加速弃用后被移除。
  • django.contrib.markup 将在加速弃用后被移除。
  • 兼容模块 django.utils.copycompatdjango.utils.hashcompat 以及功能 django.utils.itercompat.alldjango.utils.itercompat.any 将被删除。 应改用 Python 内置版本。
  • csrf_response_exemptcsrf_view_exempt 装饰器将被移除。 由于 1.4 csrf_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
  • django.contrib.localflavor.uk 的 UK 前缀对象只能通过其 GB 前缀名称访问(GB 是英国的正确 ISO 3166 代码)。
  • IGNORABLE_404_STARTSIGNORABLE_404_ENDS 设置已被 1.4 版本中的 :setting:`IGNORABLE_404_URLS` 取代。 它们将被移除。
  • 表单向导已在 1.4 中重构为使用具有可插入后端的基于类的视图。 之前的实现将被删除。
  • 调用 cache_page() 的传统方法将被删除。
  • 将删除自动向 'mail_admins' 日志处理程序添加调试假过滤器的向后兼容性垫片。 如果需要,:setting:`LOGGING` 设置应明确包含此过滤器。
  • 内置截断函数 django.utils.text.truncate_words()django.utils.text.truncate_html_words() 将被移除,以支持 django.utils.text.Truncator 类。
  • django.contrib.gis.geoip.GeoIP 类在 1.4 中移至 django.contrib.gis.geoip - django.contrib.gis.utils 中的快捷方式将被删除。
  • django.conf.urls.defaults 将被移除。 功能 include()patterns()url(),以及 handler404handler500 现在可通过 django.conf.urls 使用.
  • 函数 setup_environ()execute_manager() 将从 django.core.management 中删除。 这也意味着 manage.py 文件的旧(1.4 之前)样式将不再有效。
  • 将不再支持将 is_safeneeds_autoescape 标志设置为模板过滤器函数的属性。
  • 属性 HttpRequest.raw_post_data 在 1.4 中重命名为 HttpRequest.body。 向后兼容性将被删除 - HttpRequest.raw_post_data 将不再有效。
  • ModelAdmin.response_add()post_url_continue 参数的值必须是 None(重定向到新创建对象的编辑页面)或预先格式化的 url。 字符串格式,例如之前默认的 '../%s/',将不再被接受。


1.5

有关这些更改的更多详细信息,请参阅 Django 1.3 发行说明

  • 在没有 :setting:`SECRET_KEY` 的情况下启动 Django 将导致异常而不是 DeprecationWarning。 (这是从通常的弃用路径加速的;请参阅 Django 1.4 发行说明 。)
  • mod_python 请求处理程序将被删除。 应改用 mod_wsgi 处理程序。
  • 测试客户端返回的django.test.client.Response对象的template属性将被删除。 应改用 templates 属性。
  • django.test.simple.DjangoTestRunner 将被移除。 而是使用 unittest-native 类。 django.test.simple.DjangoTestRunner 的特性(包括快速失败和 Ctrl-C 测试终止)可以由 unittest.TextTestRunner 提供。
  • 未记录的函数 django.contrib.formtools.utils.security_hash 将被删除,而是使用 django.contrib.formtools.utils.form_hmac
  • 基于函数的通用视图模块将被移除,取而代之的是基于类的等效项,概述 此处
  • django.core.servers.basehttp.AdminMediaHandler 将被移除。 取而代之的是使用 django.contrib.staticfiles.handlers.StaticFilesHandler
  • 模板标签库 adminmedia 和模板标签 {% admin_media_prefix %} 将被删除,以支持通用静态文件处理。 (这比通常的弃用路径更快;请参阅 Django 1.4 发行说明 。)
  • urlssi 模板标签将被修改,以便每个标签的第一个参数是模板变量,而不是隐含的字符串。 在 1.4 中,此行为由 future 模板标签库中的标签版本提供。
  • resetsqlreset 管理命令将被删除。
  • 身份验证后端将需要支持将非活动用户传递给所有处理权限的方法。 supports_inactive_user 属性将不再被选中,并且可以从自定义后端中删除。
  • transform() 在没有 SRID 值的几何上调用时将引发 GEOSException
  • django.http.CompatCookie 将被移除以支持 [X38X]。
  • django.core.context_processors.PermWrapperdjango.core.context_processors.PermLookupDict 将分别被移除,以支持相应的 django.contrib.auth.context_processors.PermWrapperdjango.contrib.auth.context_processors.PermLookupDict
  • :setting:`MEDIA_URL`:setting:`STATIC_URL` 设置需要以斜杠结尾,以确保以一致的方式组合模板中的路径。
  • django.db.models.fields.URLField.verify_exists 将被移除。 由于棘手的安全和性能问题,该功能在 1.3.1 中被弃用,并将遵循略微加速的弃用时间表。
  • 在运行时执行的翻译构建过程中,位于所谓的 项目路径 下的翻译将被忽略。 :setting:`LOCALE_PATHS` 设置可用于同一任务,方法是将文件系统路径包含到 locale 目录中,该目录的值中包含非应用程序特定的翻译。
  • Markup contrib 应用程序将不再支持早于 2.1 的 Python-Markdown 库版本。 使用了加速时间线,因为这是与安全相关的弃用。
  • CACHE_BACKEND 设置将被删除。 缓存后端应在 :setting:`CACHES` 设置中指定。


1.4

有关这些更改的更多详细信息,请参阅 Django 1.2 发行说明

  • CsrfResponseMiddlewareCsrfMiddleware 将被移除。 使用表单内的 {% 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_saveget_db_prep_valueget_db_prep_lookup 方法必须支持多个数据库。
  • Message 模型(在 django.contrib.auth 中),其在 User 模型(user.message_set)中的相关管理器,以及相关方法(user.message_set.create())和 user.get_and_delete_messages()),将被删除。 应改用 消息框架 。 auth 上下文处理器返回的相关 messages 变量也将被删除。 请注意,这意味着管理应用程序将依赖于消息上下文处理器。
  • 身份验证后端需要支持 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_FORMATSDEFAULT_TIME_INPUT_FORMATSDEFAULT_DATETIME_INPUT_FORMATS 将被删除。 使用 django.utils.formats.get_format() 获取适当的格式。
  • 使用基于函数的测试运行器的能力将被删除,以及 django.test.simple.run_tests() 测试运行器。
  • django.contrib.syndication 中的 views.feed() 视图和 feeds.Feed 类将被删除。 应该使用基于类的视图 views.Feed
  • django.core.context_processors.auth。 此版本将删除旧方法以支持 django.contrib.auth.context_processors.auth 中的新方法。
  • postgresql 数据库后端将被删除,使用 postgresql_psycopg2 后端代替。
  • no 语言代码将被移除,并由 nb 语言代码取代。
  • 身份验证后端将需要定义布尔属性 supports_inactive_user,直到 1.5 版假定所有后端都将处理非活动用户。
  • django.db.models.fields.XMLField 将被移除。 这在 1.3 版本中已被弃用。 已使用加速弃用计划,因为自删除 oldforms 以来,该字段没有执行任何超出简单 TextField 的作用。 XMLField 的所有用法都可以替换为 TextField
  • 将删除 django.core.files.storage.Storage(和子类)的 open() 方法中未记录的 mixin 参数。


1.3

有关这些更改的更多详细信息,请参阅 Django 1.1 发行说明

  • AdminSite.root()。 这种连接管理 URL 的方法将被删除,以支持包含 admin.site.urls
  • 身份验证后端需要定义布尔属性 supports_object_permissionssupports_anonymous_user,直到 1.4 版,此时将假定所有后端都支持这些选项。