新特性
约束
新的CheckConstraint和UniqueConstraint类现在开始支持自定义数据库约束,通过使用Meta.constraints选项。
小特性
- django.contrib.admin
为TabularInline添加了列头的CSS类
- django.contrib.auth
HttpRequest将被作为第一个位置参数传递给RemoteUserBackend.configure_user()方法。
- django.contrib.gis
Envelope函数开始支持Oracle。 coveredby和covers查询现在支持SpatiaLite 不再支持GDAL1.9和1.10
- django.contrib.staticfiles
为collectstatic --ignore选项添加路由,以支持类似/vendor/*.js的模式
- Database backends
为SQLite上的QuerySet.iterator()添加输出流
- Generic Views
新的View.setup钩子将在调用dispatch()方法之前初始化视图属性。
- Internationalization
现在支持亚美尼亚语言
- Management Commands
新的选项–force-color强制对输出添加颜色
inspectdb命令将为PostgreSQL数据库的外部表创建模型
inspectdb --include-views将为Oracle和PostgreSQL的物化视图创建模型
inspectdb --include-partitions将为PostgreSQL的分区表创建模型。
在Oracle和PostgreSQL上inspectdb命令将内省DurationField字段类型,在SQLite上内省AutoField字段类型。
在Oracle中,dbshell将被rlwrap包装起来。rlwrap提供一个命令历史记录和键盘输入编辑功能。
新的makemigrations --no-header选项可以在生成migration文件的时候避免写入头部注释。
runserver命令现在可以使用Watchman插件,用于提高监视大量修改文件的性能。并且不再支持pyinotify插件。
9. Migrations
新的migrate --plan选项将打印出迁移操作的列表
NoneType现在可以在migrations中序列化了
现在可以为migrations注册自定义的序列化器了
10. Models
为PostgreSQL ,新增Index.opclasses类
通过Index.condition,支持分区索引
新增NullIf和Reverse数据库函数
为QuerySet.bulk_create()函数新增ignore_conflicts参数,此参数如果设置为True,将忽略在添加数据行时的错误。
新增ExtractIsoYear函数
新增QuerySet.bulk_update()方法,提高批量更新指定字段的效率
对于Model.save()、QuerySet.update()和Model.delete()等单独的操作,Django将不再启动一个事务,这有助于提高自动提交数据库操作的性能
SQLite现在支持StdDev和Variance函数
Aggregate类现在开始支持DISTINCT聚合操作
RelatedManager.add()、create()、remove()、set()、get_or_create()、update_or_create() 等方法现在支持多对多关系。
SQLite现在要求最低版本是3.8.3
mysqlclient现在要求最低版本是1.3.13
11. Requests and Responses
新增HttpRequest.headers,可以快速地访问请求的头部信息
- URLs
新增的ResolverMatch.route属性保存了匹配的URL模式的路由
- Validators
MaxValueValidator、MinValueValidator、MinLengthValidator和MaxLengthValidator 现在可以接收一个可调用的limit_value参数值。