簡體   English   中英

沒有Null約束失敗-null =已設置真

[英]Not Null Constraint Failed - null=True already set

我正在更改我的寄存器模型,以便有一個引用位置的外鍵。 我要實現的是要建立一個關系,其中Register模型可以具有0到許多位置。

最初,我設置了一個許多字段,但我意識到這是一個錯誤,因為它為每個寄存器提供了所有存在的位置。 我只想要每個寄存器的子集。

我的模型現在看起來像:

class Register(AbstractBaseUser, models.Model):
    username = models.CharField(max_length=20,default='',blank=True)
    password = models.CharField(max_length=80,default='',blank=True)
    email = models.CharField(max_length=255,default='',blank=True)
    #Added 2nd May
    #locations = models.ManyToManyField(Location)
    #3rd May change to foreign key
    locations = models.ForeignKey(Location,on_delete=models.CASCADE, blank=True, null=True, default='')

    USERNAME_FIELD = 'username'

引用的模型是:

class Location(models.Model):
    locationname = models.CharField(max_length=80,default='',blank=True)
    address = models.ForeignKey(Address, on_delete=models.CASCADE)
    geolocation = models.ForeignKey(GeoLocation, on_delete=models.CASCADE, default='')

當我嘗試遷移時,出現以下錯誤。 我已經進行了makemigrations,如果再次運行它,則表明沒有任何更改。

“ NOT NULL約束失敗:register_register.locations_id”

我一直在搜索其他帖子,它建議添加我已添加的null = True參數,但仍然出現此錯誤。 我找不到完成此操作的任何帖子,但仍然會出現此錯誤。

使用manage.py flush從數據庫中清除數據使我能夠重新遷移項目。

我意識到我在關系上犯了一個錯誤,並且外鍵在錯誤的桌子上,它必須放在適當的位置,因此從根本上講是問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM