在試圖運行manage.py makemigrations
,我收到以下錯誤:在我的models.py中,一個ForeignKey聲明不需要默認值,但另一個呢?爲什麼?
You are trying to add a non-nullable field 'menu_category' to fooditem without
a default; we can't do that (the database needs something to populate existing
rows.
我的代碼如下:
models.py
class FoodItem(models.model):
restaurant = models.ForeignKey('Restaurant', on_delete=models.CASCADE)
menu_category = models.ForeignKey('MenuCategory', on_delete=models.CASCADE)
...
是沒有任何意義的是部分當我刪除menu_category行時,不會發生任何錯誤,儘管餐館外鍵也沒有默認值。另外,如果我必須指定一個外鍵的默認值,我甚至會指定什麼值?
你必須與現有值的DB行因此,Django預計新的默認值。由於該屬性的現有值,您只會看到此錯誤;否則你可以在沒有默認的情況下正確定義你的外鍵。 – Ivan
有什麼辦法可以擺脫現有的價值?另外,我不知道我是如何能夠看到現有的價值觀,因爲我剛剛創建了這個領域;我從來沒有遷移過它。 –
現有的「值」很可能爲空,但它們在技術上仍佔用您桌子中的空間。如果不會導致過多的返工,您可能會完全刪除違規行。 – Ivan