Tôi có một câu hỏi đơn giản: trong mô hình của mình, tôi xác định cấu trúc cho một trong các bảng của tôi; tuy nhiên, tôi muốn thiết lập giá trị mặc định cho Booleanfield
: own
nhưng có vẻ như không hoạt động đúng cách. Đây là mã của tôi trong mô hình:Điểm 'mặc định = True' là gì trong BooleanField
class Books(models.Model):
title = models.CharField(max_length=100)
own = models.BooleanField(default=True)
Khi tôi desc
bàn của tôi trong mysql, đây là những gì tôi nhận được (lưu ý rằng sở hữu có mặc định Null):
Ngoài ra, khi tôi cố gắng làm như sau:
INSERT INTO `counters_books` (`title`) VALUES ('My Brain is Open')
Tôi gặp lỗi này:
ERROR 1364 (HY000): Field 'own' doesn't have a default value
P.S. Tôi hiểu rằng bằng cách sử dụng NullBooleanField
tôi sẽ có thể giải quyết vấn đề; tuy nhiên, điểm của default
là gì nếu tôi không thể chèn hàng trừ khi tôi phải chỉ định giá trị cho trường đó?
Bạn có thêm các mặc định sau khi tạo cơ sở dữ liệu/bảng? – mipadi
@mipadi: Tôi không chắc điều đó có nghĩa là gì; nhưng không có bảng 'Sách' nào trước khi tôi chạy' python manage.py syncdb'! – Thuglife
Bài kiểm tra đúng là 'book = Book (' 1984 '); book.save() ', không phải là một SQL thô" INSERT ". Toàn bộ điểm của ORM không bao giờ phải viết SQL thuần túy. –