Ngày 3/11/2026, Django phát hành phiên bản 6.1.3. Bản này vá 6 lỗ hổng bảo mật (5 mức “low” và 1 mức “moderate”), sửa nhiều lỗi còn tồn tại trong 6.1.2, và chính thức tương thích với Python 3.15. Nếu dự án của bạn đang chạy Django 6.1, đây là bản nâng cấp nên làm ngay trong tuần này.

Tin này đáng đọc vì nó gỡ một “nút thắt” kéo dài cả tháng qua: Python 3.15 ra mắt từ ngày 9/10, nhưng Django 6.1 khi đó chỉ hỗ trợ chính thức tới Python 3.14. Với 6 lỗ hổng bảo mật đi kèm, 6.1.3 vừa là “giấy phép” lên Python 3.15, vừa là bản vá không nên trì hoãn.

6 lỗ hổng bảo mật được vá

Theo ghi chú phát hành chính thức, Django 6.1.3 vá 5 lỗ hổng mức “low” và 1 lỗ hổng mức “moderate”. Mức độ này thấp hơn đợt vá tháng 10, nhưng “low” không có nghĩa là bỏ qua được: chi tiết kỹ thuật của từng lỗi sẽ được công bố sau khi bản vá ra mắt, và đó chính là lúc kẻ tấn công bắt đầu khai thác.

Nâng cấp patch như 6.1.2 lên 6.1.3 là dạng nâng cấp an toàn nhất của Django: không tính năng mới, không đổi API. Rủi ro lớn hơn thường nằm ở việc chần chừ, không phải ở việc nâng cấp.

Python 3.15: cuối cùng đã được hỗ trợ chính thức

Trước 6.1.3, Django 6.1 chỉ hỗ trợ Python 3.12 đến 3.14; Python 3.15 được thêm vào đúng từ mốc 6.1.3. Lộ trình nâng cấp vì thế đã rõ: lên Django 6.1.3 trước, rồi mới đổi interpreter sang Python 3.15 (nên dùng bản mới nhất, hiện là 3.15.2).

Đừng đảo ngược thứ tự này: chạy Django 6.1.2 trên Python 3.15 là cấu hình chưa được hỗ trợ chính thức. Trước khi đổi interpreter, hãy kiểm tra các dependency quan trọng đã có wheel cho Python 3.15 hay chưa.

Các bản sửa lỗi đáng chú ý khác

Ngoài bảo mật và Python 3.15, 6.1.3 còn sửa nhiều lỗi hồi quy của dòng 6.1: FETCH_PEERS ghi đè giá trị peer đã sửa cục bộ; serializer YAML crash với sort_keys; Value mang None crash trên SQLite trong lookup in của JSONField; legend_tag() thêm class CSS bắt buộc nhiều lần; tương thích oracledb 26.0.0+; và makemessages crash trên Windows với file tên non-ASCII trên Python 3.15+.

Điều này có ý nghĩa gì với bạn

Với hầu hết dự án Django 6.1, kế hoạch gọn trong một buổi chiều: nâng cấp lên 6.1.3 ở dev, chạy toàn bộ test suite, kiểm tra nhanh trên staging, rồi đưa lên production. Nếu bạn muốn lên Python 3.15 để dùng lazy import hay UTF-8 mặc định, 6.1.3 chính là bản bạn chờ đợi — nhưng hãy nâng cấp Django trước.

Bài viết liên quan

Câu hỏi thường gặp

Tôi đang chạy Django 6.1.2, có cần nâng cấp lên 6.1.3 ngay không?

Có. Đây là bản vá bảo mật kèm sửa lỗi, không tính năng mới nên rủi ro rất thấp. Nâng cấp càng sớm, cửa sổ tấn công càng ngắn.

Django 6.1.3 hỗ trợ Python 3.15 thật không?

Có. Ghi chú phát hành ngày 3/11/2026 nêu rõ bản này “adds compatibility with Python 3.15”; trước đó Django 6.1 chỉ hỗ trợ tới Python 3.14.

Nâng cấp lên 6.1.3 có breaking change không?

Không. Đây là bản patch nên theo chính sách của Django chỉ chứa vá bảo mật và sửa lỗi, không đổi API hay hành vi. Dù vậy, bạn vẫn nên chạy test suite trước khi đưa lên production.

Muốn lên Python 3.15 thì làm theo thứ tự nào?

Lên Django 6.1.3 trước, kiểm tra dependency đã hỗ trợ Python 3.15 chưa, rồi mới đổi interpreter.

💬 Tin này ảnh hưởng tới dự án của bạn thế nào? Chia sẻ góc nhìn của bạn trong phần bình luận — mình đọc hết và sẽ tổng hợp những ý hay nhất.

Nguồn tham khảo