2011-07-08 25 views
69

tôi có mã nàyTôi có thể làm cho các lĩnh vực trọng điểm nước ngoài tùy chọn trong Django mô hình

subject  = models.ForeignKey(subjects) 
location  = models.ForeignKey(location) 
publisher = models.ForeignKey(publisher) 

Có nó không phải lúc nào có thể là tôi có ba giá trị của cuốn sách. vì vậy đôi khi nếu tôi không biết chủ đề hoặc vị trí hoặc nhà xuất bản. Sau đó, tôi muốn giữ chúng trống

Nhưng nếu có thì tôi cần chọn hộp để chọn. là nó có thể như thế

Trả lời

135

Chắc chắn, chỉ cần thêm blank=True, null=True cho từng lĩnh vực mà bạn muốn duy trì tùy chọn như

subject = models.ForeignKey(subjects, blank=True, null=True) 
+1

đều cần thiết? Điều gì sẽ là nhược điểm của việc sử dụng null = True? – Ward

+2

@WardC Xem https://docs.djangoproject.com/en/1.9/ref/models/fields/#blank –

+8

@WardC Sự kết hợp của cả hai rất thường xuyên bởi vì thông thường nếu bạn định cho phép một trường trống trong biểu mẫu của bạn, bạn cũng sẽ cần cơ sở dữ liệu của mình để cho phép giá trị NULL cho trường đó. Trường hợp ngoại lệ là CharFields và TextFields, mà trong Django không bao giờ được lưu dưới dạng NULL. Giá trị trống được lưu trữ trong DB dưới dạng chuỗi rỗng (''). –

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