Django2.1 更新说明!

阿里云2000元红包!本站用户参与享受九折优惠!

Django2.1版本发布时间:2018-8-1 一、Python兼容性 Django2.1只支持Python 3.5、 3.6和3.7以上版本。Django2.0是最后一个支持Python3.4及一下版本的发行版。因此,按照Django官方的尿性,要使用最新版本的Django,请使用最新版本的Python比较稳妥。 二、新特性 1. ‘view’视图模型权限 Meta.default_permissions 新增一个‘view’权限。当你运行migrate命令时,该权限会自动创建。这可以让admin的访问者只具有读的权限,而没有修改权限,对应的判断方法是 ModelAdmin.has_view_permission() 。此功能向后兼容,通常情况下你无需特别关心。 2. 小功能 Django.contrib.admin后台站点 ModelAdmin.search_fields 现在可以使用 field__exact 匹配 jQuery从2.2.3升级到3.3.1版本 ModelAdmin.delete_queryset() 现在可以自定义删除过程 现在开始可以重写整个admin站点 ModelAdmin.list_display 中元素的 admin_order_field 属性现在可以是一个查询表达式 新的 ModelAdmin.sortable_by 属性和 ModelAdmin.get_sortable_by() 方法可以限制能够排序的列 ModelAdmin.get_deleted_objects() 方法现在允许自定义删除过程 actions.html 、 change_list_results.html 、 date_hierarchy.html 、 pagination.html 、 prepopulated_fields_js.html 、 search_form.html 、 submit_line.html 模板可以在任何app或者模型中被改写。 现在使用 change_list_object_tools.html 、 change_form_object_tools.html 模板可以在每个app或模型中单独重写admin的修改列表以及修改表单对象工具 InlineModelAdmin.has_add_permission() 方法现在将父亲对象obj作为第二个位置参数传入 admin动作现在可以设置权限。 django.contrib.auth认证与授权 createsuperuser 命令现在会弹出提示,用于绕过 AUTH_PASSWORD_VALIDATORS 的检查 当自定义user模型时, UserCreationForm 和 UserChangeForm 不再需要重写 django.contrib.sessions 新增 SESSION_COOKIE_SAMESITE 标识 Cache缓存 基于本地内存的缓存后端将使用LRU策略,而不是伪随机策略 新增touch()方法用于更新缓存键的失效时间 CSRF跨站请求伪造 新增 CSRF_COOKIE_SAMESITE 属性 Forms表单 ImageField将增加 accept=”image/*” HTML属性 Internationalization国际化 新增 get_supported_language_variant() 方法 Management Commands管理命令 新增 inspectdb –include-views 选项 BaseCommand 类现在使用自定义的帮助格式化器 Migrations数据库迁移 支持序列化 functools.partialmethod 对象 为了支持环境固化,migrations迁移可能从 .pyc 文件加载 Models模型 现在支持 __init_subclass__() BinaryField类型现在可以设置 editable=True ,如果你想将它用在模型表单中 新增了一系列文本数据库函数: Chr, Left, LPad, LTrim, Ord, Repeat, Replace, Right, RPad, RTrim, and Trim 新增TruncWeek方法,用于截断DateField和DateTimeField的周一那一天 现在,使用负号可以中止某个查询表达式起作用 QuerySet.order_by() 和 distinct(*fields) 现在支持字段转换 BooleanField布尔值段现在可以设置 null=True 。这用于替换即将被废弃的NullBooleanField字段类型 新增 QuerySet.explain() 方法用于显示数据库的查询过程 QuerySet.raw() 开始支持 prefetch_related() Requests and Responses请求和响应 新增 HttpRequest.get_full_path_info() 方法 为 HttpResponse.set_cookie() 方法新增 samesite 参数,用于设置 SameSite 这个cookie标识 Templates模板 新增 json_script 过滤器,用于安全的输出Python的JSON对象 Tests测试 新增支持307和308重定向的测试代理 测试代理现在序列化请求数据字典成JSON格式,如果你设置 content_type=’application/json’ 新的 SimpleTestCase.assertWarnsMessage() 方法是 assertWarnsRegex() 方法的简化版本 三、2.1版本向后不兼容 Database backend API数据库后端API NotImplementedError 异常现在被改为 django.db.NotSupportedError ,用于提示数据库不支持的功能 allow_sliced_subqueries 更名为 allow_sliced_subqueries_with_in DatabaseOperations.distinct_sql() 方法新增一个params参数,并返回一个包含SQL和parameters的元组 DatabaseFeatures.introspected_boolean_field_type 从方法变成属性 django.contrib.gis 不再支持SpatiaLite 4.0 不支持的数据库版本 不再支持MySQL 5.5,需要5.6或更高版本!!(重要) 不再支持PostgreSQL 9.3,需要9.4以上版本 最低支持mysqlclient 1.3.7,不再是1.3.3 不再支持SQLite 3.7.15以下版本 migrations 由于现在migrations从 .pyc 文件加载,所以在Python2和Python3混合使用的环境下,你可能需要手动删除它们 (更多细节不赘述) 四、2.1中被废弃的功能 以下将被废弃 ForceRHR 地理函数 django.utils.http.cookie_date() {% load staticfiles %} 和 {% load admin_static %} 将被废弃,请使用 {% load static %} django.contrib.staticfiles.templatetags.static() 将被废弃,请使用 django.templatetags.static.static() 五、2.1中移除的功能 移除 contrib.auth.views.login() 、 logout() 、 password_change() 、 password_change_done() 、 password_reset() 、 password_reset_done() 、 password_reset_confirm() 、 password_reset_complete() (更多细节不赘述) Django发行历史: 版本路线图 发行计划表 转自: http://www.liujiangblog.com/blog/34/https://www.cnblogs.com/zmdComeOn/p/11943465.html

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
GO
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论