Python Not Null约束失败-已设置Null=True

Python Not Null约束失败-已设置Null=True,python,django,python-3.x,django-models,Python,Django,Python 3.x,Django Models,我正在更改寄存器模型,以便有一个外键引用一个位置。我想要实现的是建立一种关系,其中寄存器模型可以有0到多个位置 最初,我设置了一个多个字段,我意识到这是一个错误,因为它为每个寄存器提供了所有存在的位置。我只想要每个寄存器的子集 我的模型现在看起来像: class Register(AbstractBaseUser, models.Model): username = models.CharField(max_length=20,default='',blank=True) pas

我正在更改寄存器模型,以便有一个外键引用一个位置。我想要实现的是建立一种关系,其中寄存器模型可以有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,如果我再次运行它,它会声明没有任何更改

“非空约束失败:寄存器\u寄存器。位置\u id”


我一直在搜索其他帖子,它建议添加我添加的null=True参数,但我仍然得到这个错误。我找不到任何已执行此操作的帖子,但仍然会出现此错误。

使用manage.py flush清除数据库中的数据使我能够重新迁移项目


我意识到我在关系上犯了一个错误,外键在错误的表上,它需要在位置上,这从根本上说就是问题所在。

表中有数据吗?是否运行了
python manage.py makemigrations
python manage.py migrate
?两者都有。如果是先清除数据的情况,需要删除哪些Da数据,这是通过manage.py管理的还是仅通过管理控制台管理的?我已使用manage.py flush删除了数据库中的所有数据,现在它似乎已迁移。不过,还需要进一步测试。是否有人可以建议是否是位置列导致了问题,以及如何从一列中清除数据?在这个例子中,所有的数据都是垃圾测试数据,所以我可以删除这些数据。