2020 年 9 月 1 日
Django 3.1.1 修复了 3.1 中的两个安全问题和几个漏洞。
在 Python 3.7+ 上,当使用 collectstatic 管理命令时, FILE_UPLOAD_DIRECTORY_PERMISSIONS 模式不能应用于上传文件过程中创建的中间级目录和中间级收集的静态目录。
你应该检查并手动修正现有中间级目录的权限。
在 Python 3.7+ 上,文件系统缓存的中间级目录有系统的标准 umask,而不是 0o077 (无组或其他权限)。
select_for_update() 中数据丢失的可能性。当在 of 参数中使用指向代理模型的相关字段时,对应的模型没有被锁定(#31866)。TemplateView.get_context_data() 中传递废弃的关键字参数到查询集时导致崩溃(#31877)。MiddlewareMixin.process_request() 和 process_response() 钩子的线程敏感性。JSONField 与 MariaDB、MySQL、Oracle 和 SQLite 的键转换时的 __in 查找(#31936)。startproject 命令生成的 CommonPasswordValidator 和 settings.py 会导致权限错误(#31912)。get_response 可调用对象的问题(#31928)。QuerySet.order_by() crash on PostgreSQL when ordering and
grouping by JSONField with a custom
decoder (#31956). As a
consequence, fetching a JSONField with raw SQL now returns a string
instead of preloaded data. You will need to explicitly call json.loads()
in such cases.QuerySet.delete() 崩溃问题,这是在 MariaDB 10.3.2+ 上的 Django 3.1 中出现的性能倒退,当对一个聚合函数(#31965)进行过滤时。django.contrib.admin.EmptyFieldListFilter 在反向关系上使用时崩溃的问题(#31952)。9月 22, 2023