{"title":"Django废弃时间表","version":"5.1","locale":"zh-hans","docname":"internals/deprecation","url":"/zh-hans/5.1/internals/deprecation/","canonical":"https://djangodocs.dev/zh-hans/5.1/internals/deprecation/","summary":"本文档概述了根据弃用政策 deprecation policy 弃用后，各个Django版本将以向后不兼容的方式删除或更改的情况。 通常，可以在之前的两个版本的发行说明中找到有关每个项目的更多详细信息。 6.0 Link to this heading # 查看 Django 5.0 发布说明…","html":"<h1>Django废弃时间表<a class=\"heading-anchor\" href=\"#django-deprecation-timeline\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>本文档概述了根据弃用政策 <a class=\"reference internal\" href=\"/zh-hans/5.1/internals/release-process/#internal-release-deprecation-policy\"><span class=\"std std-ref\">deprecation policy</span></a> 弃用后，各个Django版本将以向后不兼容的方式删除或更改的情况。 通常，可以在之前的两个版本的发行说明中找到有关每个项目的更多详细信息。</p>\n<section id=\"deprecation-removed-in-6-0\">\n<span id=\"id1\"></span><h2>6.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-6-0\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/5.0/#deprecated-features-5-0\"><span class=\"std std-ref\">Django 5.0 发布说明</span></a> 以获取更多关于这些更改的详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DjangoDivFormRenderer</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Jinja2DivFormRenderer</span></code> 过渡性表单渲染器将被移除。</p></li>\n<li><p>将移除对于将位置参数传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseConstraint</span></code> 的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> 将在 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.lookup_allowed()</span></code> 的子类的签名中变成必需。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.datastructures.Join</span></code> 不再回退到 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_joining_columns()</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignObject</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignObjectRel</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_joining_columns()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignObject.get_reverse_joining_columns()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forms.URLField</span></code> 的默认方案将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;http&quot;</span></code> 更改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code>。</p></li>\n<li><p>不再支持在不传递 args 或 kwargs 的情况下调用 <code class=\"docutils literal notranslate\"><span class=\"pre\">format_html()</span></code>。</p></li>\n<li><p>不再支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">cx_Oracle</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseDatabaseOperations.field_cast_sql()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ChoicesMeta</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.enums.ChoicesType</span></code> 的别名将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Prefetch.get_current_queryset()</span></code> 方法将被移除。</p></li>\n<li><p>相关管理器和描述符的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_prefetch_queryset()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_prefetcher()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">prefetch_related_objects()</span></code> 将不再回退到 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_prefetch_queryset()</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">FORMS_URLFIELD_ASSUME_HTTPS</span></code> 过渡性设置将被移除。</p></li>\n</ul>\n<p>有关这些更改的更多详细信息，请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/5.1/#deprecated-features-5-1\"><span class=\"std std-ref\">Django 5.1 发布说明</span></a>。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.log_deletion()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntryManager.log_action()</span></code> 方法将被移除。</p></li>\n<li><p>未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.is_iterable()</span></code> 函数和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat</span></code> 模块将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip2.GeoIP2.coords()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip2.GeoIP2.open()</span></code> 方法将被移除。</p></li>\n<li><p>支持向 <code class=\"docutils literal notranslate\"><span class=\"pre\">Model.save()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Model.asave()</span></code> 传递位置参数的功能将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.gdal.OGRGeometry.coord_dim</span></code> 的设置器将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.urls.register_converter()</span></code> 将不再允许覆盖现有的转换器。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CheckConstraint</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">check</span></code> 关键字参数将被移除。</p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/5.1/ref/files/storage/#django.core.files.storage.FileSystemStorage\" title=\"django.core.files.storage.FileSystemStorage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileSystemStorage</span></code></a> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">OS_OPEN_FLAGS</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">FieldCacheMixin</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_cache_name()</span></code> 方法将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-5-1\">\n<span id=\"id2\"></span><h2>5.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-5-1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>有关这些更改的更多详细信息，请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/4.2/#deprecated-features-4-2\"><span class=\"std std-ref\">Django 4.2 发布说明</span></a>。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseUserManager.make_random_password()</span></code> 方法将被移除。</p></li>\n<li><p>模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.index_together</span></code> 选项将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">length_is</span></code> 模板过滤器将被移除。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.hashers.SHA1PasswordHasher</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.hashers.UnsaltedMD5PasswordHasher</span></code>。</p></li>\n<li><p>模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CICharField</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CIEmailField</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CITextField</span></code> 将被移除。为了与历史迁移兼容，将保留存根字段。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.CIText</span></code> mixin 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseGeometryWidget</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">map_width</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">map_height</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.assertFormsetError()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.assertQuerysetEqual()</span></code> 方法将被移除。</p></li>\n<li><p>将移除将编码的 JSON 字符串字面量传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code> 以及相关查找和表达式的支持。</p></li>\n<li><p>将移除向 <code class=\"docutils literal notranslate\"><span class=\"pre\">Signer</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">TimestampSigner</span></code> 传递位置参数的支持。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_FILE_STORAGE</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">STATICFILES_STORAGE</span></code> 设置。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.get_storage_class()</span></code> 函数将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-5-0\">\n<span id=\"id3\"></span><h2>5.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-5-0\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>有关这些更改的更多详细信息，请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/4.0/#deprecated-features-4-0\"><span class=\"std std-ref\">Django 4.0 发布说明</span></a>。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SERIALIZE</span></code> 测试设置将被移除。</p></li>\n<li><p>未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.baseconv</span></code> 模块将被移除。</p></li>\n<li><p>未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datetime_safe</span></code> 模块将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code> 设置的默认值将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> 更改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p></li>\n<li><p>在请求上下文之外构建的站点地图的默认站点地图协议将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">'http'</span></code> 更改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'https'</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DiscoverRunner.build_suite()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">DiscoverRunner.run_tests()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">extra_tests</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.aggregates.ArrayAgg</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">JSONBAgg</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">StringAgg</span></code> 聚合在没有行时将返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>，而不再返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_L10N</span></code> 设置将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_DEPRECATED_PYTZ</span></code> 过渡设置将被移除。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">pytz</span></code> 时区的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">is_dst</span></code> 参数将从以下方法中移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.datetimes()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.timezone.make_aware()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.Trunc()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncSecond()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncMinute()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncHour()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncDay()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncWeek()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncMonth()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncQuarter()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.functions.TruncYear()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.admin.GeoModelAdmin</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">OSMGeoAdmin</span></code> 类将被移除。</p></li>\n<li><p>未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseForm._html_output()</span></code> 方法将被移除。</p></li>\n<li><p>在渲染 <code class=\"docutils literal notranslate\"><span class=\"pre\">ErrorDict</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ErrorList</span></code> 时返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">str</span></code> 而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">SafeString</span></code> 的能力将被移除。</p></li>\n</ul>\n<p>有关这些更改的更多详细信息，请参阅 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/4.1/#deprecated-features-4-1\"><span class=\"std std-ref\">Django 4.1 发布说明</span></a>。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SitemapIndexItem.__str__()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_MASKED</span></code> 过渡设置将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.cached_property()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.constraints.ExclusionConstraint</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">opclasses</span></code> 参数将被移除。</p></li>\n<li><p>未记录的能力传递 <code class=\"docutils literal notranslate\"><span class=\"pre\">errors=None</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.assertFormError()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">assertFormsetError()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions.serializers.PickleSerializer</span></code> 将被移除。</p></li>\n<li><p>不再允许在预取相关对象的查询集上使用未提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">chunk_size</span></code> 参数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.iterator()</span></code> 的用法。</p></li>\n<li><p>不再允许将未保存的模型实例传递给相关过滤器。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserBackend.configure_user()</span></code> 子类的签名中将需要 <code class=\"docutils literal notranslate\"><span class=\"pre\">created=True</span></code>。</p></li>\n<li><p>将移除通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code> 请求在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.LogoutView</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.logout_then_login()</span></code> 中注销的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.timezone.utc</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.timezone.utc</span></code> 的别名将被移除。</p></li>\n<li><p>不再允许将响应对象和表单/表单集名称传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.assertFormError()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">assertFormsetError()</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.admin.OpenLayersWidget</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.hashers.CryptPasswordHasher</span></code> 将被移除。</p></li>\n<li><p>将移除模板 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/default.html&quot;</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/formsets/default.html&quot;</span></code>。</p></li>\n<li><p>将移除在 <code class=\"docutils literal notranslate\"><span class=\"pre\">Expression.asc()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Expression.desc()</span></code> 方法以及 <code class=\"docutils literal notranslate\"><span class=\"pre\">OrderBy</span></code> 表达式中传递 <code class=\"docutils literal notranslate\"><span class=\"pre\">nulls_first=False</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">nulls_last=False</span></code> 的能力。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-4-1\">\n<span id=\"id4\"></span><h2>4.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-4-1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/3.2/#deprecated-features-3-2\"><span class=\"std std-ref\">Django 3.2 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p>将移除在 <code class=\"docutils literal notranslate\"><span class=\"pre\">TestCase.setUpTestData()</span></code> 中将不支持使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">copy.deepcopy()</span></code> 创建深拷贝的对象分配给类属性的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommand.requires_system_checks</span></code> 将不再支持布尔值。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.validators.EmailValidator</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">whitelist</span></code> 参数和 <code class=\"docutils literal notranslate\"><span class=\"pre\">domain_whitelist</span></code> 属性将被移除。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">default_app_config</span></code> 模块变量。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.assertQuerysetEqual()</span></code> 不再在与字符串值比较时自动调用 <code class=\"docutils literal notranslate\"><span class=\"pre\">repr()</span></code> 来处理查询集。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.MemcachedCache</span></code> 将被移除。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.storage.cookie.CookieStorage</span></code> 使用的 Django 3.2 之前的消息格式的支持。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-4-0\">\n<span id=\"id5\"></span><h2>4.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-4-0\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/3.0/#deprecated-features-3-0\"><span class=\"std std-ref\">Django 3.0 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.urlquote()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">urlquote_plus()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">urlunquote()</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">urlunquote_plus()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.force_text()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_text()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.ugettext()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ugettext_lazy()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ugettext_noop()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ungettext()</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ungettext_lazy()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.i18n.set_language()</span></code> 将不再在 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.session</span></code> 中设置用户语言（键为 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.LANGUAGE_SESSION_KEY</span></code>）。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.Expression.get_group_by_cols()</span></code> 子类的签名中将需要 <code class=\"docutils literal notranslate\"><span class=\"pre\">alias=None</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.unescape_entities()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.is_safe_url()</span></code> 将被移除。</p></li>\n</ul>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/3.1/#deprecated-features-3-1\"><span class=\"std std-ref\">Django 3.1 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD_RESET_TIMEOUT_DAYS</span></code> 设置将被移除。</p></li>\n<li><p>不再允许在非布尔值作为右操作数的情况下使用未记录的 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/querysets/#std-fieldlookup-isnull\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">isnull</span></code></a> 查询。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.query_utils.InvalidQuery</span></code> 异常类将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin.py</span></code> 入口点将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.is_ajax()</span></code> 方法将被移除。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.storage.cookie.CookieStorage</span></code> 使用的 Django 3.1 之前的 Cookie 值的编码格式的支持。</p></li>\n<li><p>将移除在管理员网站中（使用 SHA-1 哈希算法的） Django 3.1 之前的密码重置令牌的支持。</p></li>\n<li><p>将移除 Django 3.1 之前的会话编码格式的支持。</p></li>\n<li><p>将移除在 Django 3.1 之前（使用 SHA-1 算法编码的） <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.Signer</span></code> 签名的支持。</p></li>\n<li><p>将移除在 Django 3.1 之前使用 SHA-1 算法编码的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.dumps()</span></code> 签名在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.loads()</span></code> 中的支持。</p></li>\n<li><p>将移除在 Django 3.1 之前（使用 SHA-1 算法的）用户会话的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.deprecation.MiddlewareMixin.__init__()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_response</span></code> 参数将需要，并且不会接受 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.dispatch.Signal</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">providing_args</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.crypto.get_random_string()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> 参数将变为必填项。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> 消息将被移除。</p></li>\n<li><p>将移除将原始列别名传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.order_by()</span></code> 的支持。</p></li>\n<li><p>模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code> 将被移除，为了与历史迁移兼容，将保留一个存根字段。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.url()</span></code> 将被移除。</p></li>\n<li><p>模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.JSONField</span></code> 将被移除，为了与历史迁移兼容，将保留一个存根字段。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms.JSONField</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.jsonb.KeyTransform</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.jsonb.KeyTextTransform</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">ifequal</span> <span class=\"pre\">%}</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">ifnotequal</span> <span class=\"pre\">%}</span></code> 模板标签将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_HASHING_ALGORITHM</span></code> 过渡设置将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-3-1\">\n<span id=\"id6\"></span><h2>3.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-3-1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/2.2/#deprecated-features-2-2\"><span class=\"std std-ref\">Django 2.2 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.timezone.FixedOffset</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.paginator.QuerySetPaginator</span></code> 将被移除。</p></li>\n<li><p>模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.ordering</span></code> 将不再影响 <code class=\"docutils literal notranslate\"><span class=\"pre\">GROUP</span> <span class=\"pre\">BY</span></code> 查询。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.FloatRangeField</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms.FloatRangeField</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_CHARSET</span></code> 设置将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.storage.CachedStaticFilesStorage</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserBackend.configure_user()</span></code> 将要求将 <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> 作为第一个位置参数传递。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.allow_database_queries</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.multi_db</span></code> 的支持。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-3-0\">\n<span id=\"id7\"></span><h2>3.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-3-0\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/2.0/#deprecated-features-2-0\"><span class=\"std std-ref\">Django 2.0 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.postgresql_psycopg2</span></code> 模块将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_CONTENT_TYPE</span></code> 设置将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.xreadlines()</span></code> 将被移除。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">Field.from_db_value()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Expression.convert_value()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code> 参数的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.earliest()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">latest()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">field_name</span></code> 关键字参数将被移除。</p></li>\n</ul>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/2.1/#deprecated-features-2-1\"><span class=\"std std-ref\">Django 2.1 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.models.functions.ForceRHR</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.cookie_date()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_static</span></code> 模板标签库将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.templatetags.static()</span></code> 将被移除。</p></li>\n<li><p>将移除允许定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.has_add_permission()</span></code> 时没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> 参数的兼容性层。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-2-1\">\n<span id=\"id8\"></span><h2>2.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-2-1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.11/#deprecated-features-1-11\"><span class=\"std std-ref\">Django 1.11 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth.views.login()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">logout()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_change()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_change_done()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_done()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_confirm()</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_complete()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth.views.logout_then_login()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">extra_context</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.runner.setup_databases()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.string_concat()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.PyLibMCCache</span></code> 将不再支持将 <code class=\"docutils literal notranslate\"><span class=\"pre\">pylibmc</span></code> 行为设置作为 <code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code> 的顶级属性传递。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.is_safe_url()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">host</span></code> 参数将被移除。</p></li>\n<li><p>将移除在渲染 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">include</span> <span class=\"pre\">%}</span></code> 模板标签时抑制异常的功能。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DatabaseIntrospection.get_indexes()</span></code> 将被移除。</p></li>\n<li><p>认证后端的 <code class=\"docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code> 方法将要求将 <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> 作为第一个位置参数传递。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.permalink()</span></code> 装饰器将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">USE_ETAGS</span></code> 设置将被移除。<code class=\"docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.cache.patch_response_headers()</span></code> 将不再设置 ETags。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.has_auto_field</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> 对正则表达式组中的内联标志（<code class=\"docutils literal notranslate\"><span class=\"pre\">(?i)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?L)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?m)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?s)</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">(?u)</span></code>）的支持将被移除。</p></li>\n<li><p>将移除没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> 参数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget.render()</span></code> 方法的支持。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-2-0\">\n<span id=\"id9\"></span><h2>2.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-2-0\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.9/#deprecated-features-1-9\"><span class=\"std std-ref\">Django 1.9 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.dispatch.signals.Signal.disconnect()</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">weak</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.extras</span></code> 包将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">assignment_tag</span></code> 助手将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">assertsRedirects</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">host</span></code> 参数将被移除。还将移除兼容性层，允许在路径相同的情况下将绝对 URL 视为与相对 URL 相等。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field.rel</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field.remote_field.to</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">on_delete</span></code> 参数将变为必填项。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.add_lazy_relation()</span></code> 将被移除。</p></li>\n<li><p>在启用时区支持时，不再将不支持时区的数据库后端将具有意识到时区的日期时间转换为 UTC 中的不明确值，当这些值作为参数传递给 ORM 之外执行的 SQL 查询，例如，使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">cursor.execute()</span></code> 时。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.tests.utils.skipIfCustomUser()</span></code> 装饰器将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">GeoManager</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">GeoQuerySet</span></code> 类将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip</span></code> 模块将被移除。</p></li>\n<li><p>模板加载器中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_recursion</span></code> 检查将从以下内容中移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.engine.Engine.find_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader_tags.ExtendsNode.find_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.supports_recursion()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.supports_recursion()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">load_template()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">load_template_sources()</span></code> 模板加载器方法将被移除。</p></li>\n<li><p>模板加载器的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_dirs</span></code> 参数将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.cache_key()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.get_template_sources()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.filesystem.Loader.get_template_sources()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.__call__()</span></code> 方法将被移除。</p></li>\n<li><p>将不再支持具有单个位置参数的自定义错误视图。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Atom1Feed</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.RssFeed</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">mime_type</span></code> 属性将被移除，而 <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> 将取而代之。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.include()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">app_name</span></code> 参数将被移除。</p></li>\n<li><p>将移除将 3 元组作为 <code class=\"docutils literal notranslate\"><span class=\"pre\">include()</span></code> 的第一个参数传递的支持。</p></li>\n<li><p>将移除在不设置应用程序命名空间的情况下设置 URL 实例命名空间的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field._get_val_from_obj()</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Field.value_from_object()</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.eggs.Loader</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth</span></code> 视图的 <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.assertRaisesMessage()</span></code> 函数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">callable_obj</span></code> 关键字参数将被移除。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> 方法上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_tags</span></code> 属性的支持将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.add_item()</span></code> 函数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">enclosure</span></code> 关键字参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.LoaderOrigin</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.base.StringOrigin</span></code> 对于 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.base.Origin</span></code> 的别名将被移除。</p></li>\n</ul>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.10/#deprecated-features-1-10\"><span class=\"std std-ref\">Django 1.10 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">makemigrations</span> <span class=\"pre\">--exit</span></code> 选项将被移除。</p></li>\n<li><p>将移除直接对反向外键或多对多关系进行赋值的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.GEOSGeometry</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_srid()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">set_srid()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.Point</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_x()</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">set_x()</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">get_y()</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">set_y()</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">get_z()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">set_z()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.Point</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_coords()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">set_coords()</span></code> 方法将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.MultiPolygon</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">cascaded_union</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.allow_lazy()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span> <span class=\"pre\">--plain</span></code> 选项将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.urlresolvers</span></code> 模块将被移除。</p></li>\n<li><p>模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">CommaSeparatedIntegerField</span></code> 将被移除。为了与历史迁移兼容性，将保留一个存根字段。</p></li>\n<li><p>模板中 <code class=\"docutils literal notranslate\"><span class=\"pre\">Context.has_key()</span></code> 方法的支持将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.Storage</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">accessed_time()</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">created_time()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">modified_time()</span></code> 方法的支持将被移除。</p></li>\n<li><p>当设置了 <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.default_related_name</span></code> 时，将移除使用模型名称进行查询查找的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">__search</span></code> 查询查找以及 <code class=\"docutils literal notranslate\"><span class=\"pre\">DatabaseOperations.fulltext_search_sql()</span></code> 方法将被移除。</p></li>\n<li><p>将移除支持自定义相关管理器类但没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">_apply_rel_filters()</span></code> 方法的 shim。</p></li>\n<li><p>将不再支持使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_authenticated()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_anonymous()</span></code> 作为方法。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta</span></code> 的私有属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual_fields</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field.contribute_to_class()</span></code> 中的私有关键字参数 <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual_only</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.add_field()</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">javascript_catalog()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">json_catalog()</span></code> 视图将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.utils.precision_wkt()</span></code> 函数将被移除。</p></li>\n<li><p>在多表继承中，隐式将 <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> 提升为 <code class=\"docutils literal notranslate\"><span class=\"pre\">parent_link</span></code> 的操作将被移除。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget._format_value()</span></code> 的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> 的方法 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_directory_name()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_filename()</span></code> 将被移除。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">mark_for_escaping()</span></code> 函数及其使用的类：<code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeData</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeBytes</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeText</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeString</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeUnicode</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> 过滤器将更改为使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.conditional_escape()</span></code>。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager.use_for_related_fields</span></code>。</p></li>\n<li><p>模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code> 继承将遵循 MRO 继承规则，并且用于选择此行为的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.manager_inheritance_from_future</span></code> 将被移除。</p></li>\n<li><p>将移除对使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.MIDDLEWARE_CLASSES</span></code> 的旧式中间件的支持。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-10\">\n<span id=\"id10\"></span><h2>1.10<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-10\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.8/#deprecated-features-1-8\"><span class=\"std std-ref\">Django 1.8 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p>将移除直接调用 <code class=\"docutils literal notranslate\"><span class=\"pre\">SQLCompiler</span></code> 作为调用其 <code class=\"docutils literal notranslate\"><span class=\"pre\">quote_name_unless_alias</span></code> 方法的别名的支持。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">firstof</span></code> 模板标签将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> 模板标签库中移除（在 1.6/1.7 弃用期间使用）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.patterns()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.i18n.i18n_patterns()</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">prefix</span></code> 参数支持将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.urls</span></code> 将被移除。</p></li>\n<li><p>在模板标签 <code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> 中使用错误的解包值数量将引发异常，而不会默默失败。</p></li>\n<li><p>将移除使用点分隔的 Python 路径来反向生成 URL 的能力。</p></li>\n<li><p>将移除对 <code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_URL</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_REDIRECT_URL</span></code> 设置使用点分隔的 Python 路径的能力。</p></li>\n<li><p>对于自定义管理命令，将停止支持 <code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">optparse`（由</span> <span class=\"pre\">:py:mod:`argparse</span></code> 替代）。</p></li>\n<li><p>类 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.management.NoArgsCommand</span></code> 将被移除。请改用默认不接受参数的 <a class=\"reference internal\" href=\"/zh-hans/5.1/howto/custom-management-commands/#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseCommand</span></code></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors</span></code> 模块将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.aggregates</span></code> 模块将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.models.sql.aggregates</span></code> 模块将被移除。</p></li>\n<li><p>以下是将被移除的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.sql.query.Query</span></code> 的方法和属性：</p>\n<ul>\n<li><p>属性：<code class=\"docutils literal notranslate\"><span class=\"pre\">aggregates</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">aggregate_select</span></code> 将被移除。</p></li>\n<li><p>方法：<code class=\"docutils literal notranslate\"><span class=\"pre\">add_aggregate</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">set_aggregate_mask</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">append_aggregate_mask</span></code> 将被移除。</p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.resolve_variable</span></code> 将被移除。</p></li>\n<li><p>以下是将从 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/meta/#django.db.models.options.Options\" title=\"django.db.models.options.Options\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.options.Options</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta</span></code>) 中移除的私有 API：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_field_by_name()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_field_names()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_fields_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_concrete_fields_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_m2m_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_objects()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_objects_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_many_to_many_objects()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_m2m_objects_with_model()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.RegexField</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">error_message</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">unordered_list</span></code> 过滤器将不再支持旧式列表。</p></li>\n<li><p>将移除对字符串类型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code> 参数在 <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> 中的支持。</p></li>\n<li><p>将移除将 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.Form._has_changed()</span></code> 重命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> 的向后兼容 shim。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">removetags</span></code> 模板过滤器将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">remove_tags()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">strip_entities()</span></code> 函数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset()</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">is_admin_site</span></code> 参数将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.field.subclassing.SubfieldBase</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.checksums</span></code> 将被移除；其功能已包含在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django-localflavor</span></code> 1.1+ 中。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.helpers.InlineAdminForm</span></code> 上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">original_content_type_id</span></code> 属性将被移除。</p></li>\n<li><p>将移除向后兼容的 shim，以允许 <code class=\"docutils literal notranslate\"><span class=\"pre\">FormMixin.get_form()</span></code> 定义时不提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></code> 参数的默认值。</p></li>\n<li><p>以下设置将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ALLOWED_INCLUDE_ROOTS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_CONTEXT_PROCESSORS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_DEBUG</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_DIRS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_LOADERS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_STRING_IF_INVALID</span></code></p></li>\n</ul>\n</li>\n<li><p>向后兼容的别名 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.BaseLoader</span></code> 将被移除。</p></li>\n<li><p>由 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/templates/#django.template.loader.get_template\" title=\"django.template.loader.get_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_template()</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/templates/#django.template.loader.select_template\" title=\"django.template.loader.select_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">select_template()</span></code></a> 返回的 Django 模板对象将不再在其 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/templates/#django.template.backends.base.Template.render\" title=\"django.template.backends.base.Template.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render()</span></code></a> 方法中接受 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/api/#django.template.Context\" title=\"django.template.Context\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Context</span></code></a>。</p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/5.1/ref/template-response/\"><span class=\"doc\">Template response APIs</span></a> 将强制使用 <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a> 和依赖于后端的模板对象，而不再使用 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/api/#django.template.Context\" title=\"django.template.Context\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Context</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/api/#django.template.Template\" title=\"django.template.Template\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Template</span></code></a>。</p></li>\n<li><p>以下函数和类的 <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> 参数将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.Context()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.RequestContext()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.response.TemplateResponse()</span></code></p></li>\n</ul>\n</li>\n<li><p>以下函数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">dictionary</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">context_instance</span></code> 参数将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.render_to_string()</span></code></p></li>\n</ul>\n</li>\n<li><p>以下函数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">dirs</span></code> 参数将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.select_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code></p></li>\n</ul>\n</li>\n<li><p>会启用会话验证，不管 <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.auth.middleware.SessionAuthenticationMiddleware'</span></code> 是否在 <code class=\"docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE_CLASSES</span></code> 中。</p></li>\n<li><p>私有属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.Field.related</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">migrate</span></code> 管理命令的 <code class=\"docutils literal notranslate\"><span class=\"pre\">--list</span></code> 选项将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ssi</span></code> 模板标签将被移除。</p></li>\n<li><p>模板标签中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span></code> 不再支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">=</span></code> 比较运算符。</p></li>\n<li><p>将移除允许在没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 参数的情况下定义 <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage.get_available_name()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage.save()</span></code> 的向后兼容 shim。</p></li>\n<li><p>将移除在 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelFormMixin.success_url</span></code> 中的传统 <code class=\"docutils literal notranslate\"><span class=\"pre\">%(&lt;foo&gt;)s</span></code> 语法支持。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">GeoQuerySet</span></code> 的聚合方法 <code class=\"docutils literal notranslate\"><span class=\"pre\">collect()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">extent()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">extent3d()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">make_line()</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">unionagg()</span></code>。</p></li>\n<li><p>将移除在创建内容类型实例时指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">ContentType.name</span></code> 的能力。</p></li>\n<li><p>将移除对旧版 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate</span></code> 签名的支持。它已从 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate(self,</span> <span class=\"pre\">db,</span> <span class=\"pre\">model)</span></code> 更改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate(self,</span> <span class=\"pre\">db,</span> <span class=\"pre\">app_label,</span> <span class=\"pre\">model_name=None,</span> <span class=\"pre\">**hints)</span></code>。</p></li>\n<li><p>将移除使用逗号分隔参数的 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> 语法的支持。</p></li>\n<li><p>当给定无效的分隔符时，<a class=\"reference internal\" href=\"/zh-hans/5.1/topics/signing/#django.core.signing.Signer\" title=\"django.core.signing.Signer\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Signer</span></code></a> 发出的警告将变为异常。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-9\">\n<span id=\"id11\"></span><h2>1.9<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-9\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.7/#deprecated-features-1-7\"><span class=\"std std-ref\">Django 1.7 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.dictconfig</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.importlib</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.tzinfo</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.unittest</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">syncdb</span></code> 命令将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.signals.pre_syncdb</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.signals.post_syncdb</span></code> 将被移除。</p></li>\n<li><p>在数据库路由器上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_syncdb</span></code> 将不再自动变成 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate</span></code>。</p></li>\n<li><p>将移除对没有迁移的应用程序的自动同步。除非您向 <code class=\"docutils literal notranslate\"><span class=\"pre\">migrate</span></code> 传递 <code class=\"docutils literal notranslate\"><span class=\"pre\">--run-syncdb</span></code> 选项，否则所有应用程序将成为必须进行迁移。</p></li>\n<li><p>将移除没有迁移的应用程序的 SQL 管理命令，包括 <code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">sqlall</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">sqlclear</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">sqldropindexes</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlindexes</span></code>。</p></li>\n<li><p>将移除对自动加载 <code class=\"docutils literal notranslate\"><span class=\"pre\">initial_data</span></code> 固定数据和初始 SQL 数据的支持。</p></li>\n<li><p>所有模型都需要在一个已安装的应用程序中定义，或者声明一个显式的 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/options/#django.db.models.Options.app_label\" title=\"django.db.models.Options.app_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">app_label</span></code></a>。此外，在其应用程序加载之前将无法导入它们。特别是，在其应用程序的根包中将无法导入模型。</p></li>\n<li><p>模型和表单中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">IPAddressField</span></code> 将被移除。为了与历史迁移兼容性，将保留一个存根字段。</p></li>\n<li><p>将不再支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">AppCommand.handle_app()</span></code>。</p></li>\n<li><p>将不再能够从 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sites.models</span></code> 导入 <code class=\"docutils literal notranslate\"><span class=\"pre\">RequestSite</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_current_site()</span></code>。</p></li>\n<li><p>通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">runfcgi</span></code> 管理命令的 FastCGI 支持将被移除。请使用 WSGI 部署您的项目。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datastructures.SortedDict</span></code> 将被移除。请改用 Python 标准库中的 <a class=\"reference external\" href=\"https://docs.python.org/3/library/collections.html#collections.OrderedDict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">collections.OrderedDict</span></code></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.declared_fieldsets</span></code> 将被移除。</p></li>\n<li><p>在 Django 代码库中，<code class=\"docutils literal notranslate\"><span class=\"pre\">util.py</span></code> 的实例已被重命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">utils.py</span></code>，以统一所有 util 和 utils 引用。提供向后兼容性的模块将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.backends.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.util</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets</span></code> 将被移除。</p></li>\n<li><p>将移除为了将 <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseMemcachedCache._get_memcache_timeout()</span></code> 方法重命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_backend_timeout()</span></code> 而引入的向后兼容 shim。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">--natural</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">-n</span></code> 选项将被移除，用于 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">dumpdata</span></code></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">serializers.serialize()</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">use_natural_keys</span></code> 参数将被移除。</p></li>\n<li><p>私有 API <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.forms.get_declared_fields()</span></code> 将被移除。</p></li>\n<li><p>将移除使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code> 与 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code> 的能力。</p></li>\n<li><p>将移除 <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIRequest.REQUEST</span></code> 属性。</p></li>\n<li><p>类 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datastructures.MergeDict</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">zh-cn</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-tw</span></code> 语言代码将被移除，并分别被 <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-hans</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-hant</span></code> 语言代码替代。</p></li>\n<li><p>内部的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.memoize</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.get_cache</span></code> 将被移除。请在 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> 中添加适当的条目，并改用 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/cache/#django.core.cache.caches\" title=\"django.core.cache.caches\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">django.core.cache.caches</span></code></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.loading</span></code> 将被移除。</p></li>\n<li><p>将不再支持将可调用参数传递给查询集。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommand.requires_model_validation</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">requires_system_checks</span></code>。管理验证器将被管理检查取代。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.validator_class</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">default_validator_class</span></code> 属性将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.validate()</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.DatabaseValidation.validate_field</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">check_field</span></code> 方法。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">validate</span></code> 管理命令将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.module_loading.import_by_path</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.module_loading.import_string</span></code>。</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>ssi``和`url``模板标签将从`future``模板标签库中删除(在1.3/1.4弃用期内使用)。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.javascript_quote</span></code> 将被移除。</p></li>\n<li><p>将不再支持数据库测试设置作为独立的数据库设置条目，以 <code class=\"docutils literal notranslate\"><span class=\"pre\">TEST_</span></code> 为前缀。</p></li>\n<li><p>将移除对 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/forms/fields/#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/forms/fields/#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">cache_choices</span></code> 选项支持。</p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/5.1/ref/class-based-views/base/#django.views.generic.base.RedirectView.permanent\" title=\"django.views.generic.base.RedirectView.permanent\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">RedirectView.permanent</span></code></a> 属性的默认值将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> 更改为 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sitemaps.FlatPageSitemap</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.sitemaps.FlatPageSitemap</span></code>。</p></li>\n<li><p>私有 API <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.utils.TestTemplateLoader</span></code> 将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes.generic</span></code> 模块将被移除。</p></li>\n<li><p>私有 API <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.where.WhereNode.make_atom()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.where.Constraint</span></code> 将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-8\">\n<span id=\"id12\"></span><h2>1.8<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-8\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.6/#deprecated-features-1-6\"><span class=\"std std-ref\">Django 1.6 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.comments</span></code> 将被移除。</p></li>\n<li><p>以下事务管理 API 将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionMiddleware</span></code>,</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction</span></code> 中定义的装饰器和上下文管理器 <code class=\"docutils literal notranslate\"><span class=\"pre\">autocommit</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">commit_on_success</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">commit_manually</span></code> 将被移除。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction</span></code> 中定义的函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">commit_unless_managed</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">rollback_unless_managed</span></code> 也将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TRANSACTIONS_MANAGED</span></code> 设置也将被移除。</p></li>\n</ul>\n</li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/builtins/#std-templatetag-cycle\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">cycle</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/builtins/#std-templatetag-firstof\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">firstof</span></code></a> 模板标签将自动转义它们的参数。在 1.6 和 1.7 版本中，这一行为由位于 <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> 模板标签库中的这些标签的版本提供。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SEND_BROKEN_LINK_EMAILS</span></code> 设置将被移除。请将 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/middleware/#django.middleware.common.BrokenLinkEmailsMiddleware\" title=\"django.middleware.common.BrokenLinkEmailsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.common.BrokenLinkEmailsMiddleware</span></code></a> 中间件添加到你的 <code class=\"docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE_CLASSES</span></code> 设置中。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.middleware.doc.XViewMiddleware</span></code> 将被移除。请改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admindocs.middleware.XViewMiddleware</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.module_name</span></code> 已重命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>。</p></li>\n<li><p>移除了用于重命名 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_query_set</span></code> 和类似 queryset 方法的向后兼容的 shims。这影响到以下类：<code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelAdmin</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommentNode</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">SingleRelatedObjectDescriptor</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ReverseSingleRelatedObjectDescriptor</span></code>。</p></li>\n<li><p>移除了用于重命名属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList.root_query_set</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList.query_set</span></code> 的向后兼容的 shims。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.defaults.shortcut</span></code> 将被移除，作为从核心 Django 代码库中移除所有 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib</span></code> 引用的目标的一部分。请改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes.views.shortcut</span></code>。同时，<code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.shortcut</span></code> 也将被移除。</p></li>\n<li><p>对于 Python Imaging Library (PIL) 模块的支持将被移除，因为它似乎不再积极维护，并且不支持 Python 3。</p></li>\n<li><p>以下私有 API 将被移除：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backend</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.close_connection()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.creation.BaseDatabaseCreation.set_autocommit()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction.is_managed()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction.managed()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.widgets.RadioInput</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.widgets.RadioChoiceInput</span></code>。</p></li>\n<li><p>模块 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple</span></code> 和类 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestSuiteRunner</span></code> 将被移除。请改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.runner.DiscoverRunner</span></code>。</p></li>\n<li><p>模块 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test._doctest</span></code> 将被移除。请改用 Python 标准库中的 doctest 模块。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_ANONYMOUS_ONLY</span></code> 设置将被移除。</p></li>\n<li><p>Django 不再在模型或表单层面使用硬编码的 <em>按住 &quot;Control&quot; 键，或者在 Mac 上按住 &quot;Command&quot; 键以选择多个</em> 字符串来覆盖或追加到用户提供的 ManyToMany 模型字段的 <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.get_(add|change|delete)_permission</span></code> 方法将被移除。</p></li>\n<li><p>会话键 <code class=\"docutils literal notranslate\"><span class=\"pre\">django_language</span></code> 不再读取以保持向后兼容性。</p></li>\n<li><p>地理 Sitemaps 将被移除（<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.sitemaps.views.index</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.sitemaps.views.sitemap</span></code>）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.fix_ampersands</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">fix_ampersands</span></code> 模板过滤器和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.clean_html</span></code> 将在加速弃用后被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-7\">\n<span id=\"id13\"></span><h2>1.7<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-7\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.5/#deprecated-features-1-5\"><span class=\"std std-ref\">Django 1.5 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p>模块 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.simplejson</span></code> 将被移除。应该改用标准库中的 <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#module-json\" title=\"(in Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">json</span></code></a>。</p></li>\n<li><p>函数``django.utils.itercompat.product`将被删除。应该使用Python内置版本。</p></li>\n<li><p>当INSTALLED_APPS和TEMPLATE_DIRS设置被指定为普通字符串而不是元组时，它们的自动更正将被移除并引发异常。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code> 参数将被从 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/5.1/ref/template-response/#django.template.response.SimpleTemplateResponse\" title=\"django.template.response.SimpleTemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SimpleTemplateResponse</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code> 方法中移除。应该改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code>。这也适用于 <code class=\"docutils literal notranslate\"><span class=\"pre\">render_to_response()</span></code> 快捷方式以及站点地图视图 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/sitemaps/#django.contrib.sitemaps.views.index\" title=\"django.contrib.sitemaps.views.index\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">index()</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/sitemaps/#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">sitemap()</span></code></a>。</p></li>\n<li><p>当使用迭代器实例化 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a>，或者当将 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/request-response/#django.http.HttpResponse.content\" title=\"django.http.HttpResponse.content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">content</span></code></a> 设置为迭代器时，该迭代器将被立即消耗。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">AUTH_PROFILE_MODULE</span></code> 设置以及 User 模型上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_profile()</span></code> 方法将被移除。</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>cleanup``管理命令将被删除。它被``clearsessions``所取代。</p></li>\n<li><p>daily_cleanup.py 脚本将会被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">depth</span></code> 关键字参数将从 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a> 中移除。</p></li>\n<li><p>来自 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/testing/advanced/#module-django.test.utils\" title=\"django.test.utils: Helpers to write custom test runners.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.test.utils</span></code></a> 的未记录文档的 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_warnings_state()</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">restore_warnings_state()</span></code> 函数以及 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/testing/tools/#django-testcase-subclasses\"><span class=\"std std-ref\">django.test.*TestCase</span></a> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">save_warnings_state()</span></code>/ <code class=\"docutils literal notranslate\"><span class=\"pre\">restore_warnings_state()</span></code> 方法已被弃用。应该使用从 Python 2.6 开始可用的 <a class=\"reference external\" href=\"https://docs.python.org/3/library/warnings.html#warnings.catch_warnings\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">warnings.catch_warnings</span></code></a> 上下文管理器。</p></li>\n<li><p>在 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm\" title=\"django.contrib.auth.forms.AuthenticationForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span></code></a> 中未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">check_for_test_cookie</span></code> 方法将在加速弃用后被移除。用户子类化这个表单的应该移除对这个方法的调用，并确保他们的身份验证相关视图启用了 CSRF 保护，以确保启用了 cookies。</p></li>\n<li><p>支持 base36 编码用户 ID（<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset_confirm_uidb36</span></code>）的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset_confirm()</span></code> 版本将被移除。如果你的站点在 Django 1.6 上运行时间超过了 <code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD_RESET_TIMEOUT_DAYS</span></code>，这个更改不会产生影响。如果没有，那么在升级到 Django 1.7 之前生成的任何密码重置链接在升级后将不起作用。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.StrAndUnicode</span></code> 混合类将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-6\">\n<span id=\"id14\"></span><h2>1.6<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-6\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.4/#deprecated-features-1-4\"><span class=\"std std-ref\">Django 1.4 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.databrowse</span></code> 将来会被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.localflavor</span></code> 将会被加快移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.markup</span></code> 将会被加快移除。</p></li>\n<li><p>兼容性模块 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.copycompat</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.hashcompat</span></code> 以及函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.all</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.any</span></code> 将会被移除。应该使用Python内置版本。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_response_exempt</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_view_exempt</span></code> 装饰器将被删除。 从1.4开始， <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_response_exempt</span></code> 已成为空操作（它返回相同的功能），而 <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_view_exempt</span></code> 已成为 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.decorators.csrf.csrf_exempt</span></code> 的同义词以取代它。</p></li>\n<li><p>原有缓存后端 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.CacheClass</span></code> 后端在Django 1.3中分为两个，以引入对PyLibMC的支持。历史悠久的 <code class=\"docutils literal notranslate\"><span class=\"pre\">CacheClass</span></code> 将会被删除，取而代之的是缓存后端 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.MemcachedCache</span></code> 。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.localflavor.uk</span></code> 的英国前缀对象只能通过其GB前缀名称来访问（GB是英国的正确ISO 3166代码）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_STARTS</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_ENDS</span></code> 设置在 1.4 版本中已被 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-IGNORABLE_404_URLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code></a> 取代。它们将被移除。</p></li>\n<li><p>在 1.4 版本中，表单向导已经重构为使用基于类的视图，并具有可插拔的后端。之前的实现将被移除。</p></li>\n<li><p>删除 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/cache/#django.views.decorators.cache.cache_page\" title=\"django.views.decorators.cache.cache_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">cache_page()</span></code></a> 缓存的旧版调用方式。</p></li>\n<li><p>向后兼容的填充程序会自动向 <code class=\"docutils literal notranslate\"><span class=\"pre\">'mail_admins'</span></code> 日志记录处理程序中添加一个debug-false过滤器。 如果需要的话，日志配置 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a> 配置应该显式地包括这个过滤器。</p></li>\n<li><p>内置的截断函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.truncate_words()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.truncate_html_words()</span></code> 将被移除，取而代之的是 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.Truncator</span></code> 类。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip.GeoIP</span></code> 类在 1.4 版本中已移动到 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip</span></code> 中，<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.utils</span></code> 中的快捷方式将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.defaults</span></code> 将被移除。函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">include()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">patterns()</span></code>, 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code>，以及 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/urls/#django.conf.urls.handler404\" title=\"django.conf.urls.handler404\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">handler404</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/urls/#django.conf.urls.handler500\" title=\"django.conf.urls.handler500\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">handler500</span></code></a> 现在可以通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls</span></code> 使用。</p></li>\n<li><p>函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">setup_environ()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">execute_manager()</span></code> 将从 <a class=\"reference internal\" href=\"/zh-hans/5.1/howto/custom-management-commands/#module-django.core.management\" title=\"django.core.management\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.core.management</span></code></a> 中移除。这也意味着旧的（1.4 版本之前的） <code class=\"file docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> 文件的风格将不再起作用。</p></li>\n<li><p>不再支持将 <code class=\"docutils literal notranslate\"><span class=\"pre\">is_safe</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">needs_autoescape</span></code> 标志设置为模板过滤器函数的属性。</p></li>\n<li><p>在 1.4 版本中，属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.raw_post_data</span></code> 已重命名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.body</span></code>。向后兼容性将被移除，<code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.raw_post_data</span></code> 将不再起作用。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.response_add()</span></code> 中，<code class=\"docutils literal notranslate\"><span class=\"pre\">post_url_continue</span></code> 参数的值必须是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None``（以重定向到新创建的对象的编辑页面）或预格式化的</span> <span class=\"pre\">URL。不再接受字符串格式，例如之前的默认值</span> <span class=\"pre\">``'../%s/'</span></code>。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-5\">\n<span id=\"id15\"></span><h2>1.5<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-5\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.3/#deprecated-features-1-3\"><span class=\"std std-ref\">Django 1.3 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p>启动没有 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> 的 Django 将引发异常而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">DeprecationWarning</span></code>。这是从通常的弃用路径加速过来的（参见 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.4/\"><span class=\"doc\">Django 1.4 发布说明</span></a>）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">mod_python</span></code> 请求处理程序将被移除。应该改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code> 处理程序。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.client.Response</span></code> 对象上的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template</span></code> 属性将被移除。应该改用 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/testing/tools/#django.test.Response.templates\" title=\"django.test.Response.templates\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">templates</span></code></a> 属性。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestRunner</span></code> 将被移除。而应该使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">unittest</span></code> 的原生类。<code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestRunner</span></code> 的功能（包括快速失败和 Ctrl-C 测试终止）可以由 <a class=\"reference external\" href=\"https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">unittest.TextTestRunner</span></code></a> 提供。</p></li>\n<li><p>未记录的函数 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.formtools.utils.security_hash</span></code> 将被移除，应该改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.formtools.utils.form_hmac</span></code>。</p></li>\n<li><p>基于函数的通用视图模块将被移除，应该使用它们的基于类的等效模块，详情请参考 <a class=\"reference internal\" href=\"/zh-hans/5.1/topics/class-based-views/\"><span class=\"doc\">这里</span></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.servers.basehttp.AdminMediaHandler</span></code> 将被移除。取而代之的是使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.handlers.StaticFilesHandler</span></code>。</p></li>\n<li><p>模板标签库 <code class=\"docutils literal notranslate\"><span class=\"pre\">adminmedia</span></code> 和模板标签 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">admin_media_prefix</span> <span class=\"pre\">%}</span></code> 将被移除，取而代之的是通用的静态文件处理方式。（这比通常的弃用路径更快，参见 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.4/\"><span class=\"doc\">Django 1.4 发布说明</span></a>。）</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">ssi</span></code> 模板标签将被修改，使每个标签的第一个参数是一个模板变量，而不是隐含的字符串。在 1.4 版本中，这个行为由 <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> 模板标签库中的标签版本提供。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">reset</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlreset</span></code> 管理命令将被移除。</p></li>\n<li><p>身份验证后端需要支持将非活动用户传递给处理权限的所有方法。不再检查 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_inactive_user</span></code> 属性，并且可以从自定义后端中移除。</p></li>\n<li><p>在没有 SRID 值的几何体上调用 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry.transform\" title=\"django.contrib.gis.geos.GEOSGeometry.transform\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">transform()</span></code></a> 将引发 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSException\" title=\"django.contrib.gis.geos.GEOSException\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GEOSException</span></code></a>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.http.CompatCookie</span></code> 将被移除，应该使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.http.SimpleCookie</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.PermWrapper</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.PermLookupDict</span></code> 将被移除，分别应该使用相应的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.PermWrapper</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.PermLookupDict</span></code>。</p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> 或 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> 设置将需要以斜杠结尾，以确保在模板中有一种一致的方法来组合路径。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.URLField.verify_exists</span></code> 将被移除。由于难以解决的安全和性能问题，该功能在 1.3.1 版本中已被弃用，并将遵循略微加速的弃用时间表。</p></li>\n<li><p>在运行时进行的翻译构建过程中，位于所谓的 <em>项目路径</em> 下的翻译将被忽略。可以使用 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-LOCALE_PATHS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOCALE_PATHS</span></code></a> 设置执行相同的任务，其中包括非应用程序特定翻译的文件系统路径，该路径包含在其值中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></code> 目录中。</p></li>\n<li><p>Markup contrib 应用程序将不再支持早于 2.1 版本的 Python-Markdown 库。由于这是与安全性相关的弃用，采用了加速的时间表。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_BACKEND</span></code> 设置将被移除。缓存后端应该在 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> 设置中指定。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-4\">\n<span id=\"id16\"></span><h2>1.4<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-4\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.2/#deprecated-features-1-2\"><span class=\"std std-ref\">Django 1.2 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfResponseMiddleware</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfMiddleware</span></code> 将被移除。要启用 CSRF 保护，请在表单内使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">csrf_token</span> <span class=\"pre\">%}</span></code> 模板标签。<code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfViewMiddleware</span></code> 仍然存在并且默认启用。</p></li>\n<li><p>CSRF 功能的旧导入（<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.csrf.*</span></code>）已在 1.2 版本中移动到核心，它们将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.backend</span></code> 模块将被移除，取而代之的是特定的后端模块。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SMTPConnection</span></code> 将被移除，取而代之的是通用的电子邮件后端 API。</p></li>\n<li><p>数据库后端上的许多对多 SQL 生成函数将被移除。</p></li>\n<li><p>使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">DATABASE_*</span></code> 顶级设置来定义数据库连接的能力将被移除。</p></li>\n<li><p>使用简写符号来指定数据库后端（例如，<code class=\"docutils literal notranslate\"><span class=\"pre\">sqlite3</span></code> 而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.sqlite3</span></code>）的能力将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_save</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_value</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_lookup</span></code> 方法将需要支持多个数据库。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Message</span></code> 模型（位于 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code> 中），在 <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code> 模型中的相关管理器（<code class=\"docutils literal notranslate\"><span class=\"pre\">user.message_set</span></code>），以及相关的方法（<code class=\"docutils literal notranslate\"><span class=\"pre\">user.message_set.create()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">user.get_and_delete_messages()</span></code>）将被移除。应该改用 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/messages/\"><span class=\"doc\">消息框架</span></a>。由身份验证上下文处理器返回的相关 <code class=\"docutils literal notranslate\"><span class=\"pre\">messages</span></code> 变量也将被移除。请注意，这意味着管理员应用程序将依赖于消息上下文处理器。</p></li>\n<li><p>身份验证后端需要支持 <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> 参数以进行权限检查。不再检查 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_object_permissions</span></code> 属性，可以从自定义后端中移除。</p></li>\n<li><p>身份验证后端需要支持将 <code class=\"docutils literal notranslate\"><span class=\"pre\">AnonymousUser</span></code> 类传递给所有处理权限的方法。不再检查 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_anonymous_user</span></code> 变量，可以从自定义后端中移除。</p></li>\n<li><p>指定可调用模板加载器而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Loader</span></code> 类的能力将被移除，同时为了向后兼容性而包括在内置模板加载器中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">load_template_source</span></code> 函数也将被移除。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.get_date_formats()</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.get_partial_date_formats()</span></code>。这些函数将被移除；使用区域设置感知的 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.formats.get_format()</span></code> 来获取适当的格式。</p></li>\n<li><p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.fields</span></code> 中，常量：<code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_DATE_INPUT_FORMATS</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_TIME_INPUT_FORMATS</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_DATETIME_INPUT_FORMATS</span></code> 将被移除。使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.formats.get_format()</span></code> 来获取适当的格式。</p></li>\n<li><p>将移除使用基于函数的测试运行器的能力，以及 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.run_tests()</span></code> 测试运行器。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.syndication</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">views.feed()</span></code> 视图和 <code class=\"docutils literal notranslate\"><span class=\"pre\">feeds.Feed</span></code> 类将被移除。应该改用基于类的视图 <code class=\"docutils literal notranslate\"><span class=\"pre\">views.Feed</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.auth</span></code> 将被移除。此版本将移除旧方法，支持新方法 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql</span></code> 数据库后端将被移除，应该改用 <code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql_psycopg2</span></code> 后端。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">no</span></code> 语言代码将被移除，已被 <code class=\"docutils literal notranslate\"><span class=\"pre\">nb</span></code> 语言代码替代。</p></li>\n<li><p>身份验证后端需要定义布尔属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_inactive_user</span></code>，直到版本 1.5，届时将假定所有后端都能处理非活动用户。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.XMLField</span></code> 将被移除。这在 1.3 版本中已被弃用。由于自从移除了 <code class=\"docutils literal notranslate\"><span class=\"pre\">oldforms</span></code> 后，该字段没有扮演任何角色，因此采用了加速的弃用时间表。所有使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">XMLField</span></code> 的地方可以替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.Storage</span></code> （和其子类）的 <code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> 方法的未记录的 <code class=\"docutils literal notranslate\"><span class=\"pre\">mixin</span></code> 参数将被移除。</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-3\">\n<span id=\"id17\"></span><h2>1.3<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-3\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>请查看 <a class=\"reference internal\" href=\"/zh-hans/5.1/releases/1.1/#deprecated-features-1-1\"><span class=\"std std-ref\">Django 1.1 发布说明</span></a> 以获取有关这些更改的更多详细信息。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.root()</span></code> 方法将被移除，应该使用包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.urls</span></code> 的方式来连接管理页面的URL。</p></li>\n<li><p>身份验证后端需要在 1.4 版本之前定义布尔属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_object_permissions</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_anonymous_user</span></code>，在此之后，将假定所有后端都支持这些选项。</p></li>\n</ul>\n</section>","rootId":"django-deprecation-timeline","toc":[{"title":"6.0","anchor":"deprecation-removed-in-6-0","children":[]},{"title":"5.1","anchor":"deprecation-removed-in-5-1","children":[]},{"title":"5.0","anchor":"deprecation-removed-in-5-0","children":[]},{"title":"4.1","anchor":"deprecation-removed-in-4-1","children":[]},{"title":"4.0","anchor":"deprecation-removed-in-4-0","children":[]},{"title":"3.1","anchor":"deprecation-removed-in-3-1","children":[]},{"title":"3.0","anchor":"deprecation-removed-in-3-0","children":[]},{"title":"2.1","anchor":"deprecation-removed-in-2-1","children":[]},{"title":"2.0","anchor":"deprecation-removed-in-2-0","children":[]},{"title":"1.10","anchor":"deprecation-removed-in-1-10","children":[]},{"title":"1.9","anchor":"deprecation-removed-in-1-9","children":[]},{"title":"1.8","anchor":"deprecation-removed-in-1-8","children":[]},{"title":"1.7","anchor":"deprecation-removed-in-1-7","children":[]},{"title":"1.6","anchor":"deprecation-removed-in-1-6","children":[]},{"title":"1.5","anchor":"deprecation-removed-in-1-5","children":[]},{"title":"1.4","anchor":"deprecation-removed-in-1-4","children":[]},{"title":"1.3","anchor":"deprecation-removed-in-1-3","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Django内部","url":"/zh-hans/5.1/internals/"}],"prev":{"docname":"internals/release-process","title":"Django 的发行流程","url":"/zh-hans/5.1/internals/release-process/"},"next":{"docname":"internals/git","title":"Django源代码库","url":"/zh-hans/5.1/internals/git/"},"formats":{"html":"/zh-hans/5.1/internals/deprecation/","markdown":"/zh-hans/5.1/internals/deprecation.md","json":"/zh-hans/5.1/internals/deprecation.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/internals/deprecation.txt","official":"https://docs.djangoproject.com/zh-hans/5.1/internals/deprecation/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}