Django 弃用时间表 — Django 文档
来自菜鸟教程
Django/docs/2.2.x/internals/deprecation
Django废弃时间表
本文档概述了根据 弃用政策 弃用后,Django 的各个部分何时会以向后不兼容的方式被删除或更改。 有关每个项目的更多详细信息,通常可以在之前两个版本的发行说明中找到。
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-localflavor
1.1+ 中。django.contrib.admin.helpers.InlineAdminForm
的original_content_type_id
属性将被移除。- 将删除允许定义
FormMixin.get_form()
且其form_class
参数没有默认值的向后兼容性垫片。 - 以下设置将被删除:
ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_STRING_IF_INVALID
- 向后兼容别名
django.template.loader.BaseLoader
将被删除。 - get_template() 和 select_template() 返回的 Django 模板对象将不再接受 render() 方法中的 Context。
- 模板响应 API 将强制使用
dict
和后端相关模板对象,而不是分别使用 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.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.forms.util
ModelAdmin.get_formsets
将被移除。- 将删除为将
BaseMemcachedCache._get_memcache_timeout()
方法重命名为get_backend_timeout()
而引入的向后兼容性垫片。 - :djadmin:`dumpdata` 的
--natural
和-n
选项将被删除。 serializers.serialize()
的use_natural_keys
参数将被删除。- 私有 API
django.forms.forms.get_declared_fields()
将被删除。 - 将
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.backend
django.db.close_connection()
django.db.backends.creation.BaseDatabaseCreation.set_autocommit()
django.db.transaction.is_managed()
django.db.transaction.managed()
django.forms.widgets.RadioInput
将被移除以支持 [X38X]。- 模块
django.test.simple
和类django.test.simple.DjangoTestSuiteRunner
将被删除。 而是使用django.test.runner.DiscoverRunner
。 - 模块
django.test._doctest
将被移除。 而是使用 Python 标准库中的 doctest 模块。 CACHE_MIDDLEWARE_ANONYMOUS_ONLY
设置将被删除。- 使用硬编码 在 Mac 上按住“Control”或“Command”选择多个. 字符串以覆盖或附加到用户提供的
help_text
表单中ManyToMany 模型字段将不再由 Django 在模型或表单层执行。 Model._meta.get_(add|change|delete)_permission
方法将被删除。- 为了向后兼容,将不再读取会话密钥
django_language
。 - 地理站点地图将被删除(
django.contrib.gis.sitemaps.views.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
混音将被移除。 定义__str__
方法并改为应用 python_2_unicode_compatible() 装饰器。
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 版,此时将假定所有后端都支持这些选项。