Django 弃用时间表 — Django 文档
来自菜鸟教程
Django/docs/3.0.x/internals/deprecation
Django 弃用时间表
本文档概述了根据 弃用政策 弃用后,Django 的各个部分何时会以向后不兼容的方式被删除或更改。 有关每个项目的更多详细信息,通常可以在之前两个版本的发行说明中找到。
4.0
有关这些更改的更多详细信息,请参阅 Django 3.0 发行说明 。
django.utils.http.urlquote()、urlquote_plus()、urlunquote()和urlunquote_plus()将被移除。django.utils.encoding.force_text()和smart_text()将被移除。django.utils.translation.ugettext()、ugettext_lazy()、ugettext_noop()、ungettext()和ungettext_lazy()将被移除。django.views.i18n.set_language()将不再在request.session(键django.utils.translation.LANGUAGE_SESSION_KEY)中设置用户语言。alias=None将需要在django.db.models.Expression.get_group_by_cols()子类的签名中。django.utils.text.unescape_entities()将被移除。django.utils.http.is_safe_url()将被移除。
3.1
有关这些更改的更多详细信息,请参阅 Django 2.2 发行说明 。
django.utils.timezone.FixedOffset将被移除。django.core.paginator.QuerySetPaginator将被移除。- 模型的
Meta.ordering将不再影响GROUP BY查询。 django.contrib.postgres.fields.FloatRangeField和django.contrib.postgres.forms.FloatRangeField将被移除。FILE_CHARSET设置将被删除。django.contrib.staticfiles.storage.CachedStaticFilesStorage将被移除。RemoteUserBackend.configure_user()将需要request作为第一个位置参数。- 将移除对
SimpleTestCase.allow_database_queries和TransactionTestCase.multi_db的支持。
3.0
有关这些更改的更多详细信息,请参阅 Django 2.0 发行说明 。
django.db.backends.postgresql_psycopg2模块将被移除。django.shortcuts.render_to_response()将被移除。DEFAULT_CONTENT_TYPE设置将被删除。HttpRequest.xreadlines()将被移除。- 将移除对
Field.from_db_value()和Expression.convert_value()的context参数的支持。 QuerySet.earliest()和latest()的field_name关键字参数将被删除。
有关这些更改的更多详细信息,请参阅 Django 2.1 发行说明 。
django.contrib.gis.db.models.functions.ForceRHR将被移除。django.utils.http.cookie_date()将被移除。staticfiles和admin_static模板标签库将被删除。django.contrib.staticfiles.templatetags.static()将被移除。- 允许在没有
obj参数的情况下定义InlineModelAdmin.has_add_permission()的垫片将被删除。
2.1
有关这些更改的更多详细信息,请参阅 Django 1.11 发行说明 。
contrib.auth.views.login()、logout()、password_change()、password_change_done()、password_reset()、password_reset_done()、password_reset_confirm()和password_reset_complete()将被移除。contrib.auth.views.logout_then_login()的extra_context参数将被移除。django.test.runner.setup_databases()将被移除。django.utils.translation.string_concat()将被移除。django.core.cache.backends.memcached.PyLibMCCache将不再支持将pylibmc行为设置作为OPTIONS的顶级属性传递。django.utils.http.is_safe_url()的host参数将被移除。- 将删除渲染
{% include %}模板标记时引发的异常静音。 DatabaseIntrospection.get_indexes()将被移除。authenticate()认证后端方法将需要request作为第一个位置参数。django.db.models.permalink()装饰器将被移除。USE_ETAGS设置将被删除。CommonMiddleware和django.utils.cache.patch_response_headers()将不再设置 ETag。Model._meta.has_auto_field属性将被移除。url()支持正则表达式组中的内联标志((?i)、(?L)、(?m)、(?s)和 [ X119X]) 将被删除。- 将删除对不带
renderer参数的Widget.render()方法的支持。
2.0
有关这些更改的更多详细信息,请参阅 Django 1.9 发行说明 。
django.dispatch.signals.Signal.disconnect()的weak参数将被删除。django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()将被移除。django.forms.extras包将被删除。assignment_tag助手将被删除。assertsRedirects的host参数将被删除。 当路径相同时,允许将绝对 URL 视为等于相对 URL 的兼容性层也将被删除。Field.rel将被移除。Field.remote_field.to属性将被移除。ForeignKey和OneToOneField的on_delete参数将是必需的。django.db.models.fields.add_lazy_relation()将被移除。- 当启用时区支持时,不支持时区的数据库后端将不再将感知日期时间转换为 UTC 中的原始值,当这些值作为参数传递给在 ORM 之外执行的 SQL 查询时,例如
cursor.execute()。 django.contrib.auth.tests.utils.skipIfCustomUser()装饰器将被移除。GeoManager和GeoQuerySet类将被删除。django.contrib.gis.geoip模块将被移除。- 模板加载器的
supports_recursion检查将从:django.template.engine.Engine.find_template()django.template.loader_tags.ExtendsNode.find_template()django.template.loaders.base.Loader.supports_recursion()django.template.loaders.cached.Loader.supports_recursion()
load_template()和load_template_sources()模板加载器方法将被删除。- 模板加载器的
template_dirs参数将被删除:django.template.loaders.base.Loader.get_template()django.template.loaders.cached.Loader.cache_key()django.template.loaders.cached.Loader.get_template()django.template.loaders.cached.Loader.get_template_sources()django.template.loaders.filesystem.Loader.get_template_sources()
django.template.loaders.base.Loader.__call__()方法将被删除。- 将取消对具有单个位置参数的自定义错误视图的支持。
django.utils.feedgenerator.Atom1Feed和django.utils.feedgenerator.RssFeed的mime_type属性将被移除,以支持content_type。django.conf.urls.include()的app_name参数将被删除。- 将删除对将 3 元组作为第一个参数传递给
include()的支持。 - 将删除对设置没有应用程序命名空间的 URL 实例命名空间的支持。
Field._get_val_from_obj()将被移除以支持 [X38X]。django.template.loaders.eggs.Loader将被移除。contrib.auth视图的current_app参数将被删除。SimpleTestCase.assertRaisesMessage()的callable_obj关键字参数将被删除。- 将删除对
ModelAdmin方法上的allow_tags属性的支持。 SyndicationFeed.add_item()的enclosure关键字参数将被删除。django.template.base.Origin的django.template.loader.LoaderOrigin和django.template.base.StringOrigin别名将被删除。
有关这些更改的更多详细信息,请参阅 Django 1.10 发行说明 。
makemigrations --exit选项将被删除。- 将删除对直接分配给反向外键或多对多关系的支持。
django.contrib.gis.geos.GEOSGeometry的get_srid()和set_srid()方法将被删除。get_x()、set_x()、get_y()、set_y()、get_z()和set_z()方法django.contrib.gis.geos.Point] 将被删除。django.contrib.gis.geos.Point的get_coords()和set_coords()方法将被删除。django.contrib.gis.geos.MultiPolygon的cascaded_union属性将被移除。django.utils.functional.allow_lazy()将被移除。shell --plain选项将被删除。django.core.urlresolvers模块将被移除。- 模型
CommaSeparatedIntegerField将被移除。 为了与历史迁移兼容,将保留存根字段。 - 将删除对模板
Context.has_key()方法的支持。 - 将删除对
django.core.files.storage.Storage.accessed_time()、created_time()和modified_time()方法的支持。 - 将删除对设置
Meta.default_related_name时使用模型名称进行查询查找的支持。 __search查询查找和DatabaseOperations.fulltext_search_sql()方法将被删除。- 用于支持没有
_apply_rel_filters()方法的自定义相关管理器类的垫片将被删除。 - 将不再支持使用
User.is_authenticated()和User.is_anonymous()作为方法。 Model._meta的私有属性virtual_fields将被移除。Field.contribute_to_class()中的私有关键字参数virtual_only和Model._meta.add_field()中的virtual将被删除。javascript_catalog()和json_catalog()视图将被删除。django.contrib.gis.utils.precision_wkt()功能将被移除。- 在多表继承中,将删除
OneToOneField到parent_link的隐式提升。 - 将移除对
Widget._format_value()的支持。 FileField方法get_directory_name()和get_filename()将被删除。mark_for_escaping()函数及其使用的类:EscapeData、EscapeBytes、EscapeText、EscapeString和EscapeUnicode被移除。escape过滤器将更改为使用django.utils.html.conditional_escape()。Manager.use_for_related_fields将被移除。- 模型
Manager继承将遵循 MRO 继承规则,选择加入此行为的Meta.manager_inheritance_from_future将被删除。 - 将删除对使用
settings.MIDDLEWARE_CLASSES的旧式中间件的支持。
1.10
有关这些更改的更多详细信息,请参阅 Django 1.8 发行说明 。
- 将删除对直接调用
SQLCompiler作为调用其quote_name_unless_alias方法的别名的支持。 cycle和firstof模板标签将从future模板标签库中移除(在 1.6/1.7 弃用期间使用)。django.conf.urls.patterns()将被移除。- 将删除对
django.conf.urls.i18n.i18n_patterns()的prefix参数的支持。 SimpleTestCase.urls将被移除。- 在
for模板标签中使用不正确的解压值计数将引发异常而不是静默失败。 - 将删除使用虚线 Python 路径反转 URL 的功能。
- 将删除为
LOGIN_URL和LOGIN_REDIRECT_URL设置使用虚线 Python 路径的功能。 - 自定义管理命令将取消对
optparse的支持(由argparse取代)。 - 类
django.core.management.NoArgsCommand将被删除。 使用 BaseCommand 代替,默认情况下不接受任何参数。 django.core.context_processors模块将被移除。django.db.models.sql.aggregates模块将被移除。django.contrib.gis.db.models.sql.aggregates模块将被移除。django.db.sql.query.Query的以下方法和属性将被移除:- 属性:
aggregates和aggregate_select - 方法:
add_aggregate、set_aggregate_mask和append_aggregate_mask。
- 属性:
django.template.resolve_variable将被移除。- 以下私有 API 将从 django.db.models.options.Options (
Model._meta) 中删除:get_field_by_name()get_all_field_names()get_fields_with_model()get_concrete_fields_with_model()get_m2m_with_model()get_all_related_objects()get_all_related_objects_with_model()get_all_related_many_to_many_objects()get_all_related_m2m_objects_with_model()
django.forms.RegexField的error_message参数将被删除。unordered_list过滤器将不再支持旧样式列表。- 将删除对
url()字符串view参数的支持。 - 将删除将
django.forms.Form._has_changed()重命名为has_changed()的向后兼容垫片。 removetags模板过滤器将被移除。django.utils.html中的remove_tags()和strip_entities()功能将被移除。django.contrib.auth.views.password_reset()的is_admin_site参数将被删除。django.db.models.field.subclassing.SubfieldBase将被移除。django.utils.checksums将被移除; 它的功能包含在django-localflavor1.1+ 中。django.contrib.admin.helpers.InlineAdminForm的original_content_type_id属性将被移除。- 将删除允许定义
FormMixin.get_form()且其form_class参数没有默认值的向后兼容性垫片。 - 以下设置将被删除:
ALLOWED_INCLUDE_ROOTSTEMPLATE_CONTEXT_PROCESSORSTEMPLATE_DEBUGTEMPLATE_DIRSTEMPLATE_LOADERSTEMPLATE_STRING_IF_INVALID
- 向后兼容别名
django.template.loader.BaseLoader将被删除。 - get_template() 和 select_template() 返回的 Django 模板对象将不再接受 render() 方法中的 Context。
- 模板响应 API 将强制使用
dict和后端相关模板对象,而不是分别使用 Context 和 Template。 - 以下函数和类的
current_app参数将被删除:django.shortcuts.render()django.template.Context()django.template.RequestContext()django.template.response.TemplateResponse()
- 以下功能的
dictionary和context_instance参数将被删除:django.shortcuts.render()django.shortcuts.render_to_response()django.template.loader.render_to_string()
- 以下功能的
dirs参数将被删除:django.template.loader.get_template()django.template.loader.select_template()django.shortcuts.render()django.shortcuts.render_to_response()
- 无论
'django.contrib.auth.middleware.SessionAuthenticationMiddleware'是否在MIDDLEWARE_CLASSES中,都会启用会话验证。 - 私有属性
django.db.models.Field.related将被移除。 migrate管理命令的--list选项将被删除。ssi模板标签将被删除。- 将删除对
if模板标签中的=比较运算符的支持。 - 允许在没有
max_length参数的情况下定义Storage.get_available_name()和Storage.save()的向后兼容性垫片将被删除。 - 将删除对
ModelFormMixin.success_url中旧的%(<foo>)s语法的支持。 GeoQuerySet聚合方法collect()、extent()、extent3d()、make_line()和unionagg()将被删除。- 创建内容类型实例时指定
ContentType.name的功能将被删除。 - 将删除对
allow_migrate旧签名的支持。 由allow_migrate(self, db, model)变更为allow_migrate(self, db, app_label, model_name=None, **hints)。 - 将删除对使用逗号分隔参数的
{% cycle %}语法的支持。 - Signer 在给定无效分隔符时发出的警告将成为例外。
1.9
有关这些更改的更多详细信息,请参阅 Django 1.7 发行说明 。
django.utils.dictconfig将被移除。django.utils.importlib将被移除。django.utils.tzinfo将被移除。django.utils.unittest将被移除。syncdb命令将被删除。django.db.models.signals.pre_syncdb和django.db.models.signals.post_syncdb将被移除。- 数据库路由器上的
allow_syncdb将不再自动变为allow_migrate。 - 没有迁移的应用程序自动同步将被删除。 除非您将
--run-syncdb选项传递给migrate,否则所有应用程序都必须进行迁移。 - 没有迁移的应用程序的 SQL 管理命令
sql、sqlall、sqlclear、sqldropindexes和sqlindexes将被删除。 - 对自动加载
initial_data夹具和初始 SQL 数据的支持将被删除。 - 所有模型都需要在已安装的应用程序中定义或声明显式 app_label。 此外,在加载应用程序之前无法导入它们。 特别是,无法在其应用程序的根包中导入模型。
- 模型和表格
IPAddressField将被删除。 为了与历史迁移兼容,将保留存根字段。 AppCommand.handle_app()将不再受支持。RequestSite和get_current_site()将不再可从django.contrib.sites.models导入。- 通过
runfcgi管理命令的 FastCGI 支持将被删除。 请使用 WSGI 部署您的项目。 django.utils.datastructures.SortedDict将被移除。 请改用 Python 标准库中的collections.OrderedDict。ModelAdmin.declared_fieldsets将被移除。- Django 代码库中的
util.py实例已重命名为utils.py,以统一所有 util 和 utils 引用。 提供向后兼容性的模块将被删除:django.contrib.admin.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.util
ModelAdmin.get_formsets将被移除。- 将删除为将
BaseMemcachedCache._get_memcache_timeout()方法重命名为get_backend_timeout()而引入的向后兼容性垫片。 - :djadmin:`dumpdata` 的
--natural和-n选项将被删除。 serializers.serialize()的use_natural_keys参数将被删除。- 私有 API
django.forms.forms.get_declared_fields()将被删除。 - 将
SplitDateTimeWidget与DateTimeField一起使用的功能将被移除。 WSGIRequest.REQUEST属性将被删除。- 类
django.utils.datastructures.MergeDict将被删除。 zh-cn和zh-tw语言代码将被删除,分别替换为zh-hans和zh-hant语言代码。- 内部
django.utils.functional.memoize将被移除。 django.core.cache.get_cache将被移除。 将合适的条目添加到 :setting:`CACHES` 并使用 django.core.cache.caches 代替。django.db.models.loading将被移除。- 将不再可能将可调用参数传递给查询集。
BaseCommand.requires_model_validation将被移除以支持 [X38X]。 管理员验证器将被管理员检查取代。ModelAdmin.validator_class和default_validator_class属性将被移除。ModelAdmin.validate()将被移除。django.db.backends.DatabaseValidation.validate_field将被移除以支持check_field方法。validate管理命令将被删除。django.utils.module_loading.import_by_path将被移除以支持 [X38X]。ssi和url模板标签将从future模板标签库中移除(在 1.3/1.4 弃用期间使用)。django.utils.text.javascript_quote将被移除。- 将不再支持数据库测试设置作为数据库设置中的独立条目,前缀为
TEST_。 - ModelChoiceField 和 ModelMultipleChoiceField 的
cache_choices选项将被删除。 - RedirectView.permanent 属性的默认值将从
True更改为False。 django.contrib.sitemaps.FlatPageSitemap将被移除以支持 [X38X]。- 私有 API
django.test.utils.TestTemplateLoader将被删除。 django.contrib.contenttypes.generic模块将被移除。- 私有 API
django.db.models.sql.where.WhereNode.make_atom()和django.db.models.sql.where.Constraint将被删除。
1.8
有关这些更改的更多详细信息,请参阅 Django 1.6 发行说明 。
django.contrib.comments将被移除。- 以下事务管理 API 将被删除:
TransactionMiddleware,- 装饰器和上下文管理器
autocommit、commit_on_success和commit_manually,在django.db.transaction中定义, - 函数
commit_unless_managed和rollback_unless_managed,也在django.db.transaction中定义, TRANSACTIONS_MANAGED设置。
- :ttag:`cycle` 和 :ttag:`firstof` 模板标签将自动转义它们的参数。 在 1.6 和 1.7 中,此行为由
future模板标签库中这些标签的版本提供。 SEND_BROKEN_LINK_EMAILS设置将被删除。 将 django.middleware.common.BrokenLinkEmailsMiddleware 中间件添加到您的MIDDLEWARE_CLASSES设置中。django.middleware.doc.XViewMiddleware将被移除。 请改用django.contrib.admindocs.middleware.XViewMiddleware。Model._meta.module_name更名为model_name。- 删除为重命名
get_query_set和类似查询集方法而引入的向后兼容垫片。 这会影响以下类别:BaseModelAdmin、ChangeList、BaseCommentNode、GenericForeignKey、Manager、SingleRelatedObjectDescriptor和ReverseSingleRelatedObjectDescriptor。 - 删除为重命名属性
ChangeList.root_query_set和ChangeList.query_set而引入的向后兼容垫片。 django.views.defaults.shortcut将被删除,作为从核心 Django 代码库中删除所有django.contrib引用的目标的一部分。 而是使用django.contrib.contenttypes.views.shortcut。django.conf.urls.shortcut也将被移除。- 对 Python Imaging Library (PIL) 模块的支持将被删除,因为它似乎不再被积极维护并且不适用于 Python 3。
- 以下私有 API 将被删除:
django.db.backenddjango.db.close_connection()django.db.backends.creation.BaseDatabaseCreation.set_autocommit()django.db.transaction.is_managed()django.db.transaction.managed()
django.forms.widgets.RadioInput将被移除以支持 [X38X]。- 模块
django.test.simple和类django.test.simple.DjangoTestSuiteRunner将被删除。 而是使用django.test.runner.DiscoverRunner。 - 模块
django.test._doctest将被移除。 而是使用 Python 标准库中的 doctest 模块。 CACHE_MIDDLEWARE_ANONYMOUS_ONLY设置将被删除。- 使用硬编码 在 Mac 上按住“Control”或“Command”选择多个. 字符串以覆盖或附加到用户提供的
help_text表单中ManyToMany 模型字段将不再由 Django 在模型或表单层执行。 Model._meta.get_(add|change|delete)_permission方法将被删除。- 为了向后兼容,将不再读取会话密钥
django_language。 - 地理站点地图将被删除(
django.contrib.gis.sitemaps.views.index和django.contrib.gis.sitemaps.views.sitemap)。 django.utils.html.fix_ampersands、fix_ampersands模板过滤器和django.utils.html.clean_html将在加速弃用后被移除。
1.7
有关这些更改的更多详细信息,请参阅 Django 1.5 发行说明 。
- 模块
django.utils.simplejson将被移除。 标准库提供了应该使用的json。 - 功能
django.utils.itercompat.product将被移除。 应改用 Python 内置版本。 - 当 INSTALLED_APPS 和 TEMPLATE_DIRS 设置被指定为纯字符串而不是元组时,它们的自动更正将被删除并引发异常。
- HttpResponse、SimpleTemplateResponse 和 TemplateResponse 的
__init__方法的mimetype参数将被删除。 应该使用content_type代替。 这也适用于render_to_response()快捷方式和站点地图视图,index() 和 sitemap()。 - 当 HttpResponse 使用迭代器实例化时,或者当 content 设置为迭代器时,该迭代器将立即被消耗。
- 用户模型上的
AUTH_PROFILE_MODULE设置和get_profile()方法将被删除。 cleanup管理命令将被删除。 它被替换为clearsessions。daily_cleanup.py脚本将被删除。depth关键字参数将从 select_related() 中删除。- 未记录的
get_warnings_state()/restore_warnings_state()函数来自 django.test.utils 和save_warnings_state()/restore_warnings_state()django.test。 *TestCase 方法已弃用。 改用从 Python 2.6 开始可用的warnings.catch_warnings上下文管理器。 - AuthenticationForm 中未记录的
check_for_test_cookie方法将在加速弃用后被删除。 子类化此表单的用户应删除对此方法的调用,并确保他们的身份验证相关视图受 CSRF 保护,从而确保启用 cookie。 - 支持 base36 编码用户 ID (
django.contrib.auth.views.password_reset_confirm_uidb36) 的django.contrib.auth.views.password_reset_confirm()版本将被删除。 如果您的站点运行 Django 1.6 的时间超过 :setting:`PASSWORD_RESET_TIMEOUT_DAYS`,则此更改将无效。 如果没有,那么在升级到 Django 1.7 之前生成的任何密码重置链接在升级后都将不起作用。 django.utils.encoding.StrAndUnicode混音将被移除。
1.6
有关这些更改的更多详细信息,请参阅 Django 1.4 发行说明 。
django.contrib.databrowse将被移除。django.contrib.localflavor将在加速弃用后被移除。django.contrib.markup将在加速弃用后被移除。- 兼容模块
django.utils.copycompat和django.utils.hashcompat以及功能django.utils.itercompat.all和django.utils.itercompat.any将被删除。 应改用 Python 内置版本。 csrf_response_exempt和csrf_view_exempt装饰器将被移除。 由于 1.4csrf_response_exempt一直是空操作(它返回相同的函数),而csrf_view_exempt一直是django.views.decorators.csrf.csrf_exempt的同义词,应该用它来代替它。django.core.cache.backends.memcached.CacheClass后端在 Django 1.3 中被分为两个,以引入对 PyLibMC 的支持。 历史上的CacheClass将被移除,取而代之的是django.core.cache.backends.memcached.MemcachedCache。django.contrib.localflavor.uk的 UK 前缀对象只能通过其 GB 前缀名称访问(GB 是英国的正确 ISO 3166 代码)。IGNORABLE_404_STARTS和IGNORABLE_404_ENDS设置已被 1.4 版本中的 :setting:`IGNORABLE_404_URLS` 取代。 它们将被移除。- 表单向导已在 1.4 中重构为使用具有可插入后端的基于类的视图。 之前的实现将被删除。
- 调用 cache_page() 的传统方法将被删除。
- 将删除自动向
'mail_admins'日志处理程序添加调试假过滤器的向后兼容性垫片。 如果需要,:setting:`LOGGING` 设置应明确包含此过滤器。 - 内置截断函数
django.utils.text.truncate_words()和django.utils.text.truncate_html_words()将被移除,以支持django.utils.text.Truncator类。 django.contrib.gis.geoip.GeoIP类在 1.4 中移至django.contrib.gis.geoip-django.contrib.gis.utils中的快捷方式将被删除。django.conf.urls.defaults将被移除。 功能include()、patterns()和url(),以及 handler404 和 handler500 现在可通过django.conf.urls使用.- 函数
setup_environ()和execute_manager()将从 django.core.management 中删除。 这也意味着manage.py文件的旧(1.4 之前)样式将不再有效。 - 将不再支持将
is_safe和needs_autoescape标志设置为模板过滤器函数的属性。 - 属性
HttpRequest.raw_post_data在 1.4 中重命名为HttpRequest.body。 向后兼容性将被删除 -HttpRequest.raw_post_data将不再有效。 ModelAdmin.response_add()中post_url_continue参数的值必须是None(重定向到新创建对象的编辑页面)或预先格式化的 url。 字符串格式,例如之前默认的'../%s/',将不再被接受。
1.5
有关这些更改的更多详细信息,请参阅 Django 1.3 发行说明 。
- 在没有 :setting:`SECRET_KEY` 的情况下启动 Django 将导致异常而不是
DeprecationWarning。 (这是从通常的弃用路径加速的;请参阅 Django 1.4 发行说明 。) mod_python请求处理程序将被删除。 应改用mod_wsgi处理程序。- 测试客户端返回的
django.test.client.Response对象的template属性将被删除。 应改用 templates 属性。 django.test.simple.DjangoTestRunner将被移除。 而是使用unittest-native 类。django.test.simple.DjangoTestRunner的特性(包括快速失败和 Ctrl-C 测试终止)可以由unittest.TextTestRunner提供。- 未记录的函数
django.contrib.formtools.utils.security_hash将被删除,而是使用django.contrib.formtools.utils.form_hmac - 基于函数的通用视图模块将被移除,取而代之的是基于类的等效项,概述 此处 。
django.core.servers.basehttp.AdminMediaHandler将被移除。 取而代之的是使用django.contrib.staticfiles.handlers.StaticFilesHandler。- 模板标签库
adminmedia和模板标签{% admin_media_prefix %}将被删除,以支持通用静态文件处理。 (这比通常的弃用路径更快;请参阅 Django 1.4 发行说明 。) url和ssi模板标签将被修改,以便每个标签的第一个参数是模板变量,而不是隐含的字符串。 在 1.4 中,此行为由future模板标签库中的标签版本提供。reset和sqlreset管理命令将被删除。- 身份验证后端将需要支持将非活动用户传递给所有处理权限的方法。
supports_inactive_user属性将不再被选中,并且可以从自定义后端中删除。 - transform() 在没有 SRID 值的几何上调用时将引发 GEOSException。
django.http.CompatCookie将被移除以支持 [X38X]。django.core.context_processors.PermWrapper和django.core.context_processors.PermLookupDict将分别被移除,以支持相应的django.contrib.auth.context_processors.PermWrapper和django.contrib.auth.context_processors.PermLookupDict。- :setting:`MEDIA_URL` 或 :setting:`STATIC_URL` 设置需要以斜杠结尾,以确保以一致的方式组合模板中的路径。
django.db.models.fields.URLField.verify_exists将被移除。 由于棘手的安全和性能问题,该功能在 1.3.1 中被弃用,并将遵循略微加速的弃用时间表。- 在运行时执行的翻译构建过程中,位于所谓的 项目路径 下的翻译将被忽略。 :setting:`LOCALE_PATHS` 设置可用于同一任务,方法是将文件系统路径包含到
locale目录中,该目录的值中包含非应用程序特定的翻译。 - Markup contrib 应用程序将不再支持早于 2.1 的 Python-Markdown 库版本。 使用了加速时间线,因为这是与安全相关的弃用。
CACHE_BACKEND设置将被删除。 缓存后端应在 :setting:`CACHES` 设置中指定。
1.4
有关这些更改的更多详细信息,请参阅 Django 1.2 发行说明 。
CsrfResponseMiddleware和CsrfMiddleware将被移除。 使用表单内的{% csrf_token %}模板标签启用 CSRF 保护。CsrfViewMiddleware保留并默认启用。- CSRF 功能(
django.contrib.csrf.*)的旧导入,在 1.2 中移至核心,将被删除。 django.contrib.gis.db.backend模块将被移除以支持特定的后端。SMTPConnection将被删除,以支持通用电子邮件后端 API。- 数据库后端的多对多 SQL 生成函数将被删除。
- 将删除使用
DATABASE_*系列顶级设置来定义数据库连接的功能。 - 将删除使用速记符号指定数据库后端(即
sqlite3而不是django.db.backends.sqlite3)的功能。 get_db_prep_save、get_db_prep_value和get_db_prep_lookup方法必须支持多个数据库。Message模型(在django.contrib.auth中),其在User模型(user.message_set)中的相关管理器,以及相关方法(user.message_set.create())和user.get_and_delete_messages()),将被删除。 应改用 消息框架 。 auth 上下文处理器返回的相关messages变量也将被删除。 请注意,这意味着管理应用程序将依赖于消息上下文处理器。- 身份验证后端需要支持
obj参数进行权限检查。supports_object_permissions属性将不再被选中,并且可以从自定义后端中删除。 - 身份验证后端将需要支持传递给所有处理权限的方法的
AnonymousUser类。supports_anonymous_user变量将不再被检查并且可以从自定义后端中删除。 - 将删除指定可调用模板加载器而不是
Loader类的功能,以及包含在内置模板加载器中以实现向后兼容性的load_template_source函数。 django.utils.translation.get_date_formats()和django.utils.translation.get_partial_date_formats()。 这些功能将被删除; 使用语言环境感知django.utils.formats.get_format()来获取适当的格式。- 在
django.forms.fields中,常量:DEFAULT_DATE_INPUT_FORMATS、DEFAULT_TIME_INPUT_FORMATS和DEFAULT_DATETIME_INPUT_FORMATS将被删除。 使用django.utils.formats.get_format()获取适当的格式。 - 使用基于函数的测试运行器的能力将被删除,以及
django.test.simple.run_tests()测试运行器。 django.contrib.syndication中的views.feed()视图和feeds.Feed类将被删除。 应该使用基于类的视图views.Feed。django.core.context_processors.auth。 此版本将删除旧方法以支持django.contrib.auth.context_processors.auth中的新方法。postgresql数据库后端将被删除,使用postgresql_psycopg2后端代替。no语言代码将被移除,并由nb语言代码取代。- 身份验证后端将需要定义布尔属性
supports_inactive_user,直到 1.5 版假定所有后端都将处理非活动用户。 django.db.models.fields.XMLField将被移除。 这在 1.3 版本中已被弃用。 已使用加速弃用计划,因为自删除oldforms以来,该字段没有执行任何超出简单TextField的作用。XMLField的所有用法都可以替换为TextField。- 将删除
django.core.files.storage.Storage(和子类)的open()方法中未记录的mixin参数。
1.3
有关这些更改的更多详细信息,请参阅 Django 1.1 发行说明 。
AdminSite.root()。 这种连接管理 URL 的方法将被删除,以支持包含admin.site.urls。- 身份验证后端需要定义布尔属性
supports_object_permissions和supports_anonymous_user,直到 1.4 版,此时将假定所有后端都支持这些选项。