Jika Anda menginginkan after_homework
menjadi opsional, maka Anda harus menggunakan null=True
dan blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Anda tidak ingin primary_key=True
untuk after_homework
- yang akan membuat after_homework
bidang kunci utama VideoGamePurchase
model, yang tidak masuk akal jika bidangnya opsional.
Sepertinya migrasi Anda kacau karena Anda memiliki primary_key=True
untuk after_homework
lapangan sebelumnya. Perbaikan termudah adalah memulai dengan database baru, hapus migrasi untuk aplikasi itu, lalu jalankan kembali makemigrations
dan migrate
. Kali ini, migrasi akan secara otomatis membuat bidang kunci utama id
untuk VideoGamePurchase
model.