2011-02-18 36 views
24

Tôi đã truy xuất một đối tượng từ cơ sở dữ liệu của mình. Đối tượng này có một trường khóa ngoài, với thuộc tính blank = True. Làm thế nào tôi có thể kiểm tra xem nó có thực sự được để trống không?Django kiểm tra xem trường có trống không?

Cảm ơn sự giúp đỡ!

Trả lời

22

blank=True chỉ thông báo cho trang quản trị rằng trường có thể để trống.

Trừ khi bạn đặt null=True, cơ sở dữ liệu của bạn sẽ khiếu nại nếu bạn cố nhập giá trị trống.

Nếu trường khóa ngoài của bạn có thể nhận giá trị null, nó sẽ trả về None trên null, vì vậy để kiểm tra xem nó có bị bỏ trống không, bạn có thể kiểm tra xem trường có là None không.

>>> obj.foreignkeyfield is None 
True 


if not obj.foreignkeyfield: 
    print "This field was left blank" 
+0

Sự khác nhau giữa 'là None' và' if not' là gì? – hobbes3

+5

@ hobbes3, Trong trường hợp của một trường FK, nó không thực sự quan trọng. Tôi đã sử dụng một biểu thức để hiển thị đầu ra của bàn điều khiển làm ví dụ. 'là None' chỉ đúng nếu' val == None', trong khi 'if not' chỉ kiểm tra' bool (val) == False'. 'bool (0)', 'bool ('')' tất cả đều đánh giá sai. –

Các vấn đề liên quan