Mam proste pytanie: w moim modelu definiuję strukturę dla jednej z moich tabel; jednak chcę ustawić domyślną wartość dla Booleanfield
: own
, ale wydaje się, że nie działa poprawnie. Oto mój kod w modelu:Jaki jest sens "default = True" w BooleanField
class Books(models.Model):
title = models.CharField(max_length=100)
own = models.BooleanField(default=True)
Kiedy desc
mój stół w mysql, to co mam (notatka że Własnych domyślne Null):
także gdy próbuję wykonać następujące czynności:
INSERT INTO `counters_books` (`title`) VALUES ('My Brain is Open')
otrzymuję ten błąd:
ERROR 1364 (HY000): Field 'own' doesn't have a default value
P.S. Rozumiem, że używając NullBooleanField
będę w stanie rozwiązać problem; jednak, o co chodzi z default
, jeśli nie mogę wstawić wiersza, chyba że muszę podać wartość dla tego pola?
Czy dodać domyślne po utworzeniu bazy danych/tabele? – mipadi
@mipadi: Nie jestem pewien co to oznacza; ale przed uruchomieniem 'python manage.py syncdb' nie było tabeli' Books'! – Thuglife
Właściwym testem jest 'book = Book ('1984'); book.save() ', a nie surowy SQL" INSERT ". Cały obiekt ORM nigdy nie musi pisać prostego kodu SQL. –