我的模型中有1到1个字段,当我在另一个表上删除数据时,我仍然需要将数据与其他字段链接。在我看来,我正在删除模型2实例,而它被删除了,我正在将completed设置为Tue,但这是一个错误。
型号.py
class Model1(models.Model):
model_2_attribute = models.OnetoOneField('Model2' on_delete=models.DO_NOTHING)
completed = model.BooleanField(default=False)
缺少默认值或model_2_attribute
为null的选项。如果删除Model2
,则Model1
将具有无效关系。
选项1将默认值设置为null。如果删除Model2
,则model_2_attribute
将为"无"。
class Model1(models.Model):
model_2_attribute = models.OneToOneField('Model2', on_delete=models.SET_NULL, blank=True, null=True)
选项2将把completed
字段移到Model2
中,不要删除它。只将字段设置为True。
class Model1(models.Model):
model_2_attribute = models.OneToOneField('Model2', on_delete=models.DO_NOTHING)
class Model2(models.Model):
# your fields
completed = model.BooleanField(default=False)
然后,您可以筛选未完成的对象,如:
qs = Model1.objects.filter(model_2_attribute__completed=False)