Sự khác biệt giữa `null=True` và `blank=True` trong Django là gì?

By khoanc, at: 16:01 Ngày 09 tháng 7 năm 2025

Thời gian đọc ước tính: __READING_TIME__ minutes

What’s the Difference Between null=True and blank=True in Django?
What’s the Difference Between null=True and blank=True in Django?

Trường hợp sử dụng

 

  • null=True:

    Sử dụng khi bạn muốn Django lưu NULL vào cơ sở dữ liệu cho các giá trị trống. Điều này thường được sử dụng cho các trường không phải chuỗi như DateTimeField, ForeignKey, v.v.
     

  • blank=True:

    Sử dụng để cho phép đầu vào trống trong các form của Django. Nó cần thiết cho các giao diện hướng đến người dùng, nơi trường dữ liệu là tùy chọn.
     

  • Cùng nhau:

    Bạn thường sử dụng cả hai khi một trường thực sự là tùy chọn:

 

note = models.CharField(max_length=100, null=True, blank=True)

 

Ghi chú quan trọng

 

  • Đối với các trường dựa trên chuỗi (CharField, TextField), Django khuyến nghị:

     

    • Chỉ sử dụng blank=True.

    • Tránh null=True, bởi vì Django lưu trữ các chuỗi trống ("") thay vì NULL.

    • Điều này tránh việc có hai giá trị “trống”: NULL và "", điều này có thể dẫn đến sự nhầm lẫn.

 

Ví dụ nhanh

 

class Profile(models.Model):
    bio = models.TextField(null=True, blank=True)  # 
Người dùng có thể để trống trong form, và nó sẽ lưu NULL vào DB.
    age = models.IntegerField(null=True, blank=True)  # Có thể bỏ qua trong form và cũng có thể là NULL trong DB.

 

Tham khảo

 

Tag list:

Liên quan

Git Tools

Đọc thêm
Python API

Đọc thêm

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.