Django 3.2 LTS 支持已于2024年4月1日终止,2026年6月起不再安全、无任何补丁;新项目应选仍在维护的Django 4.2.17+(支持至2026年10月)或升级至Django 5.2 LTS(推荐Python 3.13)。

Django 3.2 的 LTS 支持已于 2024年4月正式结束,现在(2026年6月)它已不再安全、不再受官方维护,新项目不应再选用。
Django 3.2 在 2024 年起就已进入“不推荐使用”状态
- 官方明确终止支持时间是 2024年4月1日,此后不再发布任何安全补丁或修复;
- 即使你当时(2024年)刚启动项目,也应跳过
3.2,直接选4.2(2023年4月发布的下一个LTS); - 所有已知的 CVE 漏洞(如模板注入、CSRF绕过变种、admin批量操作逻辑缺陷等)在
3.2上均无修复版本。
新项目该用哪个 Django 版本?看 Python 环境再定
Django 4.2 是当前唯一仍在维护的 LTS 版本(支持至 2026年4月,已延至 2026年10月 的补丁更新),适配情况如下:
- 如果你用
Python 3.8~3.11:直接上Django 4.2.17+(最新补丁版); - 如果你用
Python 3.12:确认用Django 4.2.8+或更高(4.2.8起正式支持3.12); - 如果你用
Python 3.13(2024年10月发布):需至少Django 5.0(非LTS),但生产环境暂不建议——生态库兼容性尚未稳定。
不要为了“LTS”而卡在旧版。LTS 是保障,不是枷锁;
4.2就是此刻唯一合理的 LTS 选择。
DEFAULT_AUTO_FIELD 和 psycopg3 是升级时最常踩的两个坑
-
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'是3.2+默认行为,但很多老教程/模板仍写死AutoField,迁移时若漏改,会导致主键溢出或迁移失败; -
psycopg3在4.2中成为默认推荐,但它的连接参数、异常类名、游标行为与psycopg2不同:-
connection.cursor()返回的是psycopg.Cursor,不是psycopg2.extensions.cursor; - 自定义数据库函数或原生 SQL 封装层若强依赖
psycopg2的内部属性(如cursor.statusmessage),会直接报错; - 建议在
settings.py显式声明ENGINE = 'django.db.backends.postgresql',不要硬编码psycopg2或psycopg。
-
Django 版本不是越旧越稳,而是越接近当前 LTS 维护窗口越可靠。现在连 4.2 都只剩不到半年官方支持期了,下个 LTS(5.2)已在路上——真正需要关注的,是你是否留出了升级通道,而不是还在纠结要不要用一个已停更两年的版本。
立即学习“Python免费学习笔记(深入)”;


















