Skip to main content

Django弃用时间轴

本文概述当各种Django将被按向后不兼容的方式删除或改变,在它们被弃用之后,根据 弃用政策。有关每个项目的更多详细信息通常可以在两个版本的发行说明中找到。

2.0

有关这些更改的更多详细信息,请参阅 Django 1.9 release notes

  • django.dispatch.signals.Signal.disconnect()weak 参数将被删除。

  • django.db.backends.base.BaseDatabaseOperations.check_aggregate_support() 将被删除。

  • django.forms.extras 包将被删除。

  • assignment_tag 助手将被删除。

  • assertsRedirectshost 参数将被删除。当路径相同时,允许绝对URL等于相对路径的兼容层也将被删除。

  • Field.rel 将被删除。

  • Field.remote_field.to 属性将被删除。

  • 将需要 ForeignKeyOneToOneFieldon_delete 参数。

  • django.db.models.fields.add_lazy_relation() 将被删除。

  • 当启用时区支持时,不支持时区的数据库后端不会将感知数据时间转换为UTC中的幼稚值,而将此类值作为参数传递到ORM外部执行的SQL查询(例如,与 cursor.execute()

  • django.contrib.auth.tests.utils.skipIfCustomUser() 装饰器将被删除。

  • GeoManagerGeoQuerySet 类将被删除。

  • django.contrib.gis.geoip 模块将被删除。

  • 模板加载器的 supports_recursion 检查将从以下位置删除:

    • django.template.engine.Engine.find_template()

    • django.template.loader_tags.ExtendsNode.find_template()

    • django.template.loaders.base.Loader.supports_recursion()

    • django.template.loaders.cached.Loader.supports_recursion()

  • 将删除 load_template()load_template_sources() 模板加载程序方法。

  • 模板加载器的 template_dirs 参数将被删除:

    • django.template.loaders.base.Loader.get_template()

    • django.template.loaders.cached.Loader.cache_key()

    • django.template.loaders.cached.Loader.get_template()

    • django.template.loaders.cached.Loader.get_template_sources()

    • django.template.loaders.filesystem.Loader.get_template_sources()

  • django.template.loaders.base.Loader.__call__() 方法将被删除。

  • 支持使用单个位置参数的自定义错误视图将被删除。

  • 将删除 django.utils.feedgenerator.Atom1Feeddjango.utils.feedgenerator.RssFeedmime_type 属性以利于 content_type

  • include()app_name 参数将被删除。

  • 支持将3元组作为第一个参数传递给 include() 将被删除。

  • 支持设置没有应用程序命名空间的URL实例名称空间将被删除。

  • Field._get_val_from_obj() 将删除赞成 Field.value_from_object()

  • django.template.loaders.eggs.Loader 将被删除。

  • 将删除 contrib.auth 视图的 current_app 参数。

  • SimpleTestCase.assertRaisesMessage()callable_obj 关键字参数将被删除。

  • 将删除对 ModelAdmin 方法的 allow_tags 属性的支持。

  • SyndicationFeed.add_item()enclosure 关键字参数将被删除。

  • django.template.base.Origindjango.template.loader.LoaderOrigindjango.template.base.StringOrigin 别名将被删除。

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

  • makemigrations --exit 选项将被删除。

  • 支持直接分配到反向外键或多对多关系将被删除。

  • django.contrib.gis.geos.GEOSGeometryget_srid()set_srid() 方法将被删除。

  • django.contrib.gis.geos.Pointget_x()set_x()get_y()set_y()get_z()set_z() 方法将被去除。

  • django.contrib.gis.geos.Pointget_coords()set_coords() 方法将被删除。

  • django.contrib.gis.geos.MultiPolygoncascaded_union 属性将被删除。

  • django.utils.functional.allow_lazy() 将被删除。

  • shell --plain 选项将被删除。

  • django.core.urlresolvers 模块将被删除。

  • 将删除模型 CommaSeparatedIntegerField。将保留存根字段以与历史迁移兼容。

  • 支持模板 Context.has_key() 方法将被删除。

  • 将删除对 django.core.files.storage.Storage.accessed_time()created_time()modified_time() 方法的支持。

  • 在设置 Meta.default_related_name 时,使用模型名称支持查询查找将被删除。

  • 将删除 __search 查询查找和 DatabaseOperations.fulltext_search_sql() 方法。

  • 将删除用于支持没有 _apply_rel_filters() 方法的自定义相关管理器类的垫片。

  • 将不再支持使用 User.is_authenticated()User.is_anonymous() 作为方法。

  • Model._meta 的私有属性 virtual_fields 将被删除。

  • Field.contribute_to_class() 中的私有关键字参数 virtual_onlyModel._meta.add_field() 中的 virtual 将被删除。

  • javascript_catalog()json_catalog() 视图将被删除。

  • django.contrib.gis.utils.precision_wkt() 功能将被删除。

  • 在多表继承中,将删除 OneToOneFieldparent_link 的隐式提升。

  • 将删除对 Widget._format_value() 的支持。

  • FileField 方法 get_directory_name()get_filename() 将被删除。

  • mark_for_escaping() 功能及其使用的类别:EscapeDataEscapeBytesEscapeTextEscapeStringEscapeUnicode 将被删除。

  • escape 过滤器将更改为使用 django.utils.html.conditional_escape()

  • Manager.use_for_related_fields 将被删除。

  • 模型 Manager 继承将遵循MRO继承规则,Meta.manager_inheritance_from_future 选择加入此行为将被删除。

  • 将删除对使用 settings.MIDDLEWARE_CLASSES 的旧样式中间件的支持。

1.10

有关这些更改的更多详细信息,请参阅 Django 1.8 release notes

  • 支持直接调用 SQLCompiler 作为调用其 quote_name_unless_alias 方法的别名将被删除。

  • cyclefirstof 模板标签将从 future 模板标签库中删除(在1.6/1.7弃用期间使用)。

  • django.conf.urls.patterns() 将被删除。

  • 支持 django.conf.urls.i18n.i18n_patterns()prefix 参数将被删除。

  • SimpleTestCase.urls 将被删除。

  • for 模板标记中使用不正确的未压缩值计数将引发异常而不是以静默方式失败。

  • 使用虚线Python路径反转网址的功能将被移除。

  • 将删除对 LOGIN_URLLOGIN_REDIRECT_URL 设置使用虚线Python路径的功能。

  • 对于自定义管理命令(替换为 argparse),将删除对 optparse 的支持。

  • django.core.management.NoArgsCommand 类将被删除。使用 BaseCommand,默认情况下没有参数。

  • django.core.context_processors 模块将被删除。

  • django.db.models.sql.aggregates 模块将被删除。

  • django.contrib.gis.db.models.sql.aggregates 模块将被删除。

  • 将删除 django.db.sql.query.Query 的以下方法和属性:

    • 属性:aggregatesaggregate_select

    • 方法:add_aggregateset_aggregate_maskappend_aggregate_mask

  • django.template.resolve_variable 将被删除。

  • 以下私人API将从 django.db.models.options.OptionsModel._meta)中删除:

    • get_field_by_name()

    • get_all_field_names()

    • get_fields_with_model()

    • get_concrete_fields_with_model()

    • get_m2m_with_model()

    • get_all_related_objects()

    • get_all_related_objects_with_model()

    • get_all_related_many_to_many_objects()

    • get_all_related_m2m_objects_with_model()

  • django.forms.RegexFielderror_message 参数将被删除。

  • unordered_list 过滤器将不再支持旧样式列表。

  • 支持 url() 的字符串 view 参数将被删除。

  • django.forms.Form._has_changed() 重命名为 has_changed() 的向后兼容垫片将被删除。

  • 将删除 removetags 模板过滤器。

  • django.utils.html 中的 remove_tags()strip_entities() 功能将被删除。

  • django.contrib.auth.views.password_reset()is_admin_site 参数将被删除。

  • django.db.models.field.subclassing.SubfieldBase 将被删除。

  • django.utils.checksums 将被删除;其功能包括在 django-localflavor 1.1+中。

  • django.contrib.admin.helpers.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 和后端相关的模板对象,而不是 ContextTemplate

  • 将删除以下函数和类的 current_app 参数:

    • django.shortcuts.render()

    • django.template.Context()

    • django.template.RequestContext()

    • django.template.response.TemplateResponse()

  • 将删除以下功能的 dictionarycontext_instance 参数:

    • django.shortcuts.render()

    • django.shortcuts.render_to_response()

    • django.template.loader.render_to_string()

  • 将删除以下功能的 dirs 参数:

    • django.template.loader.get_template()

    • django.template.loader.select_template()

    • django.shortcuts.render()

    • django.shortcuts.render_to_response()

  • 无论 'django.contrib.auth.middleware.SessionAuthenticationMiddleware' 是否在 MIDDLEWARE_CLASSES 中,都将启用会话验证。

  • 私有属性 django.db.models.Field.related 将被删除。

  • 将删除 migrate 管理命令的 --list 选项。

  • ssi 模板标签将被删除。

  • 将删除对 if 模板标记中的 = 比较运算符的支持。

  • 向后兼容填充以允许在没有 max_length 参数的情况下定义 Storage.get_available_name()Storage.save() 将被去除。

  • 将删除对 ModelFormMixin.success_url 中的传统 %(<foo>)s 语法的支持。

  • 将去除 GeoQuerySet 聚集方法 collect()extent()extent3d()make_line()unionagg()

  • 在创建内容类型实例时指定 ContentType.name 的功能将被删除。

  • 将删除对 allow_migrate 的旧签名的支持。它从 allow_migrate(self, db, model) 更改为 allow_migrate(self, db, app_label, model_name=None, **hints)

  • 支持使用逗号分隔参数的 {% cycle %} 语法将被删除。

  • 当给定无效分隔符时,Signer 发出的警告将成为异常。

1.9

有关这些更改的更多详细信息,请参阅 Django 1.7 release notes

  • django.utils.dictconfig 将被删除。

  • django.utils.importlib 将被删除。

  • django.utils.tzinfo 将被删除。

  • django.utils.unittest 将被删除。

  • syncdb 命令将被删除。

  • django.db.models.signals.pre_syncdbdjango.db.models.signals.post_syncdb 将被删除。

  • allow_syncdb 在数据库路由器上将不再自动变为 allow_migrate

  • 将删除没有迁移的应用的自动同步。所有应用程式都必须进行迁移,除非您将 --run-syncdb 选项传送给 migrate

  • 将删除没有迁移的应用程序,sqlsqlallsqlclearsqldropindexessqlindexes 的SQL管理命令。

  • 支持自动加载 initial_data 夹具和初始SQL数据将被删除。

  • 所有模型都需要在已安装的应用程序中定义或声明一个显式 app_label。此外,在加载应用程序之前不能导入它们。特别是,不可能在其应用程序的根包中导入模型。

  • 将删除模型和形式 IPAddressField。将保留存根字段以与历史迁移兼容。

  • 将不再支持 AppCommand.handle_app()

  • RequestSiteget_current_site() 将不再能从 django.contrib.sites.models 导入。

  • 通过 runfcgi 管理命令的FastCGI支持将被删除。请使用WSGI部署您的项目。

  • django.utils.datastructures.SortedDict 将被删除。使用来自Python标准库的 collections.OrderedDict

  • ModelAdmin.declared_fieldsets 将被删除。

  • Django代码库中的 util.py 实例已重命名为 utils.py,以便统一所有util和utils引用。提供向后兼容性的模块将被删除:

    • django.contrib.admin.util

    • django.contrib.gis.db.backends.util

    • django.db.backends.util

    • django.forms.util

  • ModelAdmin.get_formsets 将被删除。

  • BaseMemcachedCache._get_memcache_timeout() 方法重命名为 get_backend_timeout() 时引入的向后兼容性垫片将被删除。

  • dumpdata--natural-n 选项将被删除。

  • serializers.serialize()use_natural_keys 参数将被删除。

  • 私有API django.forms.forms.get_declared_fields() 将被删除。

  • 将删除使用 SplitDateTimeWidgetDateTimeField 的能力。

  • WSGIRequest.REQUEST 属性将被删除。

  • django.utils.datastructures.MergeDict 类将被删除。

  • zh-cnzh-tw 语言代码将被删除,并分别被 zh-hanszh-hant 语言代码替代。

  • 内部 django.utils.functional.memoize 将被删除。

  • django.core.cache.get_cache 将被删除。将合适的条目添加到 CACHES,然后使用 django.core.cache.caches

  • django.db.models.loading 将被删除。

  • 将可调参数传递到查询集将不再可能。

  • BaseCommand.requires_model_validation 将删除赞成 requires_system_checks。管理验证器将被管理员检查替换。

  • ModelAdmin.validator_classdefault_validator_class 属性将被删除。

  • ModelAdmin.validate() 将被删除。

  • django.db.backends.DatabaseValidation.validate_field 将被删除,有利于 check_field 方法。

  • validate 管理命令将被删除。

  • django.utils.module_loading.import_by_path 将删除赞成 django.utils.module_loading.import_string

  • ssiurl 模板标签将从 future 模板标签库中删除(在1.3/1.4弃用期间使用)。

  • django.utils.text.javascript_quote 将被删除。

  • 将不再支持将数据库测试设置作为数据库设置中的独立条目(以 TEST_ 为前缀)。

  • 将删除对 ModelChoiceFieldModelMultipleChoiceFieldcache_choices 选项。

  • RedirectView.permanent 属性的默认值将从 True 更改为 False

  • django.contrib.sitemaps.FlatPageSitemap 将删除赞成 django.contrib.flatpages.sitemaps.FlatPageSitemap

  • 私有API django.test.utils.TestTemplateLoader 将被删除。

  • django.contrib.contenttypes.generic 模块将被删除。

  • 私有API django.db.models.sql.where.WhereNode.make_atom()django.db.models.sql.where.Constraint 将被删除。

1.8

有关这些更改的更多详细信息,请参阅 Django 1.6 release notes

  • django.contrib.comments 将被删除。

  • 将删除以下事务管理API:

    • TransactionMiddleware

    • django.db.transaction 中定义的装饰器和上下文管理器 autocommitcommit_on_successcommit_manually

    • django.db.transaction 中定义的函数 commit_unless_managedrollback_unless_managed

    • TRANSACTIONS_MANAGED 设置。

  • cyclefirstof 模板标签将自动转义其参数。在1.6和1.7中,此行为由 future 模板标记库中的这些标记的版本提供。

  • SEND_BROKEN_LINK_EMAILS 设置将被删除。将 django.middleware.common.BrokenLinkEmailsMiddleware 中间件添加到您的 MIDDLEWARE_CLASSES 设置。

  • django.middleware.doc.XViewMiddleware 将被删除。请改用 django.contrib.admindocs.middleware.XViewMiddleware

  • Model._meta.module_name 更名为 model_name

  • 删除引入的向后兼容的垫片以重命名 get_query_set 和类似的查询集方法。这影响以下类别:BaseModelAdminChangeListBaseCommentNodeGenericForeignKeyManagerSingleRelatedObjectDescriptorReverseSingleRelatedObjectDescriptor

  • 删除引入的向后兼容的垫片以重命名属性 ChangeList.root_query_setChangeList.query_set

  • django.views.defaults.shortcut 将被删除,作为从核心Django代码库中删除所有 django.contrib 引用的目标的一部分。而是使用 django.contrib.contenttypes.views.shortcutdjango.conf.urls.shortcut 也将被删除。

  • 对Python映像库(PIL)模块的支持将被删除,因为它不再被看作是积极维护和不工作在Python 3.建议您安装 Pillow,应该使用。

  • 将删除以下私有API:

    • django.db.backend

    • django.db.close_connection()

    • django.db.backends.creation.BaseDatabaseCreation.set_autocommit()

    • django.db.transaction.is_managed()

    • django.db.transaction.managed()

  • django.forms.widgets.RadioInput 将删除赞成 django.forms.widgets.RadioChoiceInput

  • 将删除模块 django.test.simple 和类 django.test.simple.DjangoTestSuiteRunner。而应使用 django.test.runner.DiscoverRunner

  • 模块 django.test._doctest 将被删除。而是使用Python标准库中的doctest模块。

  • CACHE_MIDDLEWARE_ANONYMOUS_ONLY 设置将被删除。

  • 硬编码的 按住“控制”或Mac上的“命令”,选择多个。 字符串在ManyToMany模型字段的表单中覆盖或追加用户提供的 help_text 的用法将不再由Django在模型或表单层执行。

  • Model._meta.get_(add|change|delete)_permission 方法将被删除。

  • 会话密钥 django_language 将不再被读取用于向后兼容性。

  • 地理Sitemap会被移除(django.contrib.gis.sitemaps.views.indexdjango.contrib.gis.sitemaps.views.sitemap)。

  • django.utils.html.fix_ampersandsfix_ampersands 模板过滤器和 django.utils.html.clean_html 将在加速淘汰后被去除。

1.7

有关这些更改的更多详细信息,请参阅 Django 1.5 release notes

  • 模块 django.utils.simplejson 将被删除。标准库提供应该使用的 json

  • 将删除函数 django.utils.itercompat.product。应该使用Python内置版本。

  • 当INSTALLED_APPS和TEMPLATE_DIRS设置指定为纯字符串而不是元组时,将对其进行自动更正,并会引发异常。

  • 将删除 mimetypeHttpResponseSimpleTemplateResponseTemplateResponse__init__ 方法的参数。应该使用 content_type。这也适用于 render_to_response() 快捷方式和站点地图视图,index()sitemap()

  • HttpResponse 使用迭代器实例化时,或者当 content 设置为迭代器时,该迭代器将立即消耗。

  • 用户模型上的 AUTH_PROFILE_MODULE 设置和 get_profile() 方法将被删除。

  • cleanup 管理命令将被删除。它被 clearsessions 取代。

  • daily_cleanup.py 脚本将被删除。

  • depth 关键字参数将从 select_related() 中删除。

  • django.test.utilssave_warnings_state()/restore_warnings_state() django.test。* TestCase 方法中未记录的 get_warnings_state()/restore_warnings_state() 函数已被弃用。使用 warnings.catch_warnings 上下文管理器,从Python 2.6开始。

  • 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超过 PASSWORD_RESET_TIMEOUT_DAYS,则此更改将不起作用。如果没有,那么在升级到Django 1.7之前生成的任何密码重置链接将在升级后无法正常工作。

  • django.utils.encoding.StrAndUnicode 混合将被删除。定义 __str__ 方法并应用 python_2_unicode_compatible() 装饰器。

1.6

有关这些更改的更多详细信息,请参阅 Django 1.4 release notes

  • django.contrib.databrowse 将被删除。

  • django.contrib.localflavor 将在加速折旧后被删除。

  • django.contrib.markup 将在加速折旧后被删除。

  • 将删除兼容性模块 django.utils.copycompatdjango.utils.hashcompat 以及功能 django.utils.itercompat.alldjango.utils.itercompat.any。应该使用Python内置版本。

  • csrf_response_exemptcsrf_view_exempt 装饰器将被删除。因为1.4 csrf_response_exempt 是一个无操作(它返回相同的函数),csrf_view_exempt 已经是 django.views.decorators.csrf.csrf_exempt 的同义词,应该用它来替换它。

  • 为了引入对PyLibMC的支持,django.core.cache.backends.memcached.CacheClass 后端在Django 1.3中被拆分为两个。历史 CacheClass 将被取消以支持 django.core.cache.backends.memcached.MemcachedCache

  • django.contrib.localflavor.uk 的英国前缀对象只能通过其GB前缀名称访问(GB是英国的正确ISO 3166代码)。

  • IGNORABLE_404_STARTSIGNORABLE_404_ENDS 设置已被 IGNORABLE_404_URLS 在1.4版本中取代。他们将被删除。

  • 表单向导已重构为在1.4中使用基于类的视图与可插拔后端。之前的实现将被删除。

  • 调用 cache_page() 的传统方法将被删除。

  • 将会删除向 'mail_admins' 日志处理程序自动添加debug-false过滤器的向后兼容性填充。如果需要,LOGGING 设置应明确包括此过滤器。

  • 将删除内置截断函数 django.utils.text.truncate_words()django.utils.text.truncate_html_words() 以支持 django.utils.text.Truncator 类。

  • django.contrib.gis.geoip.GeoIP 类在1.4移动到 django.contrib.gis.geoip - django.contrib.gis.utils 中的快捷方式将被删除。

  • django.conf.urls.defaults 将被删除。 include()patterns()url()handler404handler500 的功能现在可以通过 django.conf.urls 获得。

  • 将从 django.core.management 中删除函数 setup_environ()execute_manager()。这也意味着旧的(pre-1.4)样式的 manage.py 文件将不再工作。

  • 将不再支持将 is_safeneeds_autoescape 标志设置为模板过滤器函数的属性。

  • 属性 HttpRequest.raw_post_data 在1.4中被重命名为 HttpRequest.body。向后兼容性将被删除 - HttpRequest.raw_post_data 将不再工作。

  • ModelAdmin.response_add() 中的 post_url_continue 参数的值必须是 None (重定向到新创建的对象的编辑页面)或预格式化的URL。字符串格式,例如以前的默认 '../%s/',将不再被接受。

1.5

有关这些更改的更多详细信息,请参阅 Django 1.3 release notes

  • 启动没有 SECRET_KEY 的Django将导致异常而不是 DeprecationWarning。 (这从通常的弃用路径加速;参见 Django 1.4 release notes。)

  • mod_python 请求处理程序将被删除。应该使用 mod_wsgi 处理程序。

  • 将删除 测试客户端 返回的 django.test.client.Response 对象上的 template 属性。应该使用 templates 属性。

  • django.test.simple.DjangoTestRunner 将被删除。而是使用unittest-native类。 django.test.simple.DjangoTestRunner 的功能(包括fail-fast和Ctrl-C测试终止)目前可以由单元测试本地 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 release notes。)

  • 将修改 urlssi 模板标签,以便每个标签的第一个参数是模板变量,而不是隐含字符串。在1.4中,此行为由 future 模板标记库中的标记版本提供。

  • 将删除 resetsqlreset 管理命令。

  • 认证后端将需要支持一个非活动用户被传递给处理权限的所有方法。将不再检查 supports_inactive_user 属性,并可以从自定义后端中删除。

  • 当在没有SRID值的几何体上调用时,transform() 将引发 GEOSException

  • django.http.CompatCookie 将删除赞成 django.http.SimpleCookie

  • django.core.context_processors.PermWrapperdjango.core.context_processors.PermLookupDict 将被去除,分别有利于相应的 django.contrib.auth.context_processors.PermWrapperdjango.contrib.auth.context_processors.PermLookupDict

  • MEDIA_URLSTATIC_URL 设置将需要以尾部斜杠结尾,以确保有一个一致的方式组合模板中的路径。

  • django.db.models.fields.URLField.verify_exists 将被删除。由于难以处理的安全性和性能问题,该功能在1.3.1中已被弃用,并将遵循略微加速的弃用时间段。

  • 在运行时执行的翻译构建过程中,将忽略所谓的 项目路径 下的翻译。 LOCALE_PATHS 设置可以用于相同的任务,通过包括到其值中包含非应用程序特定翻译的 locale 目录的文件系统路径。

  • Markup contrib应用程序将不再支持2.1之前的Python-Markdown库版本。使用加速的时间表,因为这是与安全性相关的弃用。

  • CACHE_BACKEND 设置将被删除。缓存后端应在 CACHES 设置中指定。

1.4

有关这些更改的更多详细信息,请参阅 Django 1.2 release notes

  • CsrfResponseMiddlewareCsrfMiddleware 将被删除。使用表单中的 {% csrf_token %} 模板标记启用CSRF保护。 CsrfViewMiddleware 保留并默认启用。

  • CSRF功能(django.contrib.csrf.*)的旧导入,将移到1.2中的核心,将被删除。

  • django.contrib.gis.db.backend 模块将被删除,以支持特定的后端。

  • SMTPConnection 将被删除,以支持通用电子邮件后端API。

  • 数据库后端上的许多SQL生成函数将被删除。

  • 使用 DATABASE_* 系列顶级设置定义数据库连接的能力将被删除。

  • 将删除使用缩写符号来指定数据库后端(即,sqlite3 而不是 django.db.backends.sqlite3)的能力。

  • get_db_prep_saveget_db_prep_valueget_db_prep_lookup 方法将必须支持多个数据库。

  • 将删除 Message 模型(在 django.contrib.auth 中),其在 User 模型(user.message_set)中的相关管理器以及相关方法(user.message_set.create()user.get_and_delete_messages())。应该使用 消息框架。 auth上下文处理器返回的相关 messages 变量也将被删除。注意,这意味着管理应用程序将依赖于消息上下文处理器。

  • 身份验证后端需要支持 obj 参数以进行权限检查。将不再检查 supports_object_permissions 属性,并可以从自定义后端中删除。

  • 认证后端需要支持传递给处理权限的所有方法的 AnonymousUser 类。 supports_anonymous_user 变量将不再受到检查,可以从自定义后端中移除。

  • 将删除指定可调用模板加载程序而不是 Loader 类的能力,以及与内置模板加载程序一起提供的 load_template_source 函数以实现向后兼容性。

  • django.utils.translation.get_date_formats()django.utils.translation.get_partial_date_formats()。这些功能将被删除;使用区域感知 django.utils.formats.get_format() 来获取适当的格式。

  • django.forms.fields 中,常数:DEFAULT_DATE_INPUT_FORMATSDEFAULT_TIME_INPUT_FORMATSDEFAULT_DATETIME_INPUT_FORMATS 将被去除。使用 django.utils.formats.get_format() 获取相应的格式。

  • 使用基于功能的测试运行器的能力将与 django.test.simple.run_tests() 测试运行器一起删除。

  • django.contrib.syndication 中的 views.feed() 视图和 feeds.Feed 类将被删除。应该使用基于类的视图 views.Feed

  • django.core.context_processors.auth。此版本将删除旧方法,有利于 django.contrib.auth.context_processors.auth 中的新方法。

  • postgresql 数据库后端将被删除,而改用 postgresql_psycopg2 后端。

  • no 语言代码将被删除,并已被 nb 语言代码替代。

  • 当假设所有后端都将处理非活动用户时,认证后端需要定义布尔属性 supports_inactive_user,直到版本1.5。

  • django.db.models.fields.XMLField 将被删除。作为1.3版本的一部分,这已被弃用。已经使用加速的淘汰计划,因为除了 oldforms 之外,该字段没有执行除了简单 TextField 之外的任何角色。 XMLField 的所有用途可以用 TextField 代替。

  • 将删除 django.core.files.storage.Storage (和子类)的 open() 方法的未记录的 mixin 参数。

1.3

有关这些更改的更多详细信息,请参阅 Django 1.1 release notes

  • AdminSite.root()。这种挂接管理URL的方法将被删除,有利于包含 admin.site.urls

  • 认证后端需要定义布尔属性 supports_object_permissionssupports_anonymous_user,直到版本1.4,此时将假定所有后端都将支持这些选项。