Django 2.1 版本发行说明 — Django 6.0.4 documentation(2026)
创始人
2026-05-18 18:23:26
0
Django教程

Django 2.1 版本发行说明

2018 年 8 月 1 日

欢迎使用 Django 2.1 !

这些发布说明涵盖了 新功能,以及从 Django 2.0 或更早版本升级时需要注意的 不兼容变更。我们已经 删除了一些功能,这些功能已经到达了他们的弃用周期的末端,并且我们已经 开始了一些功能的弃用过程

如果你要更新现有的项目,请看 如何将 Django 更新至新的版本 指南。

Python 兼容性

Django 2.1 supports Python 3.5, 3.6, and 3.7. Django 2.0 is the last version to support Python 3.4. We highly recommend and only officially support the latest release of each series.

Django 2.1 的新特性是什么?

模型的“查看”权限

模型的 Meta.default_permissions 属性中添加了 "view" 权限。这些新权限将在运行 migrate 时自动创建。

这允许将用户赋予对管理员中的模型的只读访问权限。新增了 ModelAdmin.has_view_permission()。该实现是向后兼容的,不需要分配 "view" 权限以允许拥有 "change" 权限的用户编辑对象。

有一些 不兼容考虑

次要特性

django.contrib.admin

  • 现在,ModelAdmin.search_fields 接受任何查找,如 field__exact

  • jQuery 的版本已从 2.2.3 升级到 3.3.1 。

  • 新的 ModelAdmin.delete_queryset() 方法允许自定义 "删除选定对象" 操作的删除过程。

  • 现在你可以 覆盖默认的管理站点

  • 新的 ModelAdmin.sortable_by 属性和 ModelAdmin.get_sortable_by() 方法允许限制可以在更改列表页面中排序的列。

  • ModelAdmin.list_display 中的元素的 admin_order_field 属性现在可以是一个查询表达式。

  • The new ModelAdmin.get_deleted_objects() method allows customizing the deletion process of the delete view and the "delete selected" action.

  • actions.htmlchange_list_results.htmldate_hierarchy.htmlpagination.htmlprepopulated_fields_js.htmlsearch_form.htmlsubmit_line.html 模板现在可以在每个应用程序或每个模型的基础上 被覆盖 (除了全局覆盖)。

  • 管理员更改列表和更改表单对象工具现在可以在每个应用程序、每个模型或全局 被覆盖,使用 change_list_object_tools.htmlchange_form_object_tools.html 模板。

  • InlineModelAdmin.has_add_permission() 现在将父对象作为第二个位置参数传递,obj

  • 管理员操作现在可以 指定权限 以限制它们对某些用户的可用性。

django.contrib.auth

django.contrib.gis

django.contrib.sessions

缓存

CSRF

表单

  • ImageField 的小部件现在以带有 HTML 属性 accept="image/*" 渲染。

国际化

  • 添加了 get_supported_language_variant() 函数。

  • 领土语言变体的未翻译字符串现在使用通用语言的翻译。例如,未翻译的 pt_BR 字符串使用 pt 的翻译。

管理命令

  • 新的 inspectdb --include-views 选项允许为数据库视图创建模型。

  • BaseCommand 类现在使用自定义的帮助格式化程序,以使标准选项如 --verbosity--settings 出现在帮助输出的最后,从而为子类命令的选项提供更突出的位置。

迁移

  • 添加了对 functools.partialmethod 对象的序列化支持。

  • 为了支持冻结的环境,迁移可以从 .pyc 文件中加载。

模型

请求和响应

  • 添加了 HttpRequest.get_full_path_info()

  • 添加了 samesite 参数到 HttpResponse.set_cookie() 以允许设置 SameSite cookie 标志。

  • FileResponse 的新 as_attachment 参数设置了 Content-Disposition 头,使浏览器询问用户是否要下载文件。FileResponse 还会在适当的情况下尝试设置 Content-TypeContent-Length 头。

模板

  • 新的 json_script 过滤器安全地将 Python 对象输出为 JSON,包装在 红百科 豫ICP备13019747号-13