0

我不太确定如何通过谷歌找到这个,搜索并没有把我带到任何地方。

您如何以这样的方式关联 2 个模型,如果您在管理面板中删除一个条目,另一个将自动删除?

感谢您的任何帮助。

编辑:更新示例。我希望一个 Event 能够描述其他参赛者,并且与 Event 具有 OneToOne 关系的 Picture 应该是主要参赛者。所以一旦主要参赛者被删除,我也想删除事件。不幸的是,我不能只在 Event 中添加 ForeignKey 关系,否则会导致错误。那么,有没有办法为 OneToOne 关系做到这一点?

class Event(models.Model):
    competitors = models.ManyToManyField('Picture',null=True,blank=True)

class Picture(models.Model):
    competition = models.OneToOneField(Event) 
4

2 回答 2

4

引用django 文档

当 Django 删除一个对象时,默认情况下它会模拟 SQL 约束 ON DELETE CASCADE 的行为——换句话说,任何具有指向要删除的对象的外键的对象都将与它一起被删除。

然后,这是默认行为。

有关详细信息,请参阅on_delete选项:

user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
The possible values for on_delete are found in django.db.models:

CASCADE: Cascade deletes; the default.
...
于 2012-12-29T22:16:08.757 回答
1

假设您有两个模型:

class ModelA(models.Model):
    name = models.CharField(max_length=30)

class ModelB(models.Model):
    abc = models.CharField(max_length=30)
    model_a = models.ForeignKey(ModelA)

现在让我们做一些工作示例:

modelAObj = ModelA.objects.create(name='aamir')
modelBObj = ModelB.objects.create(abc='cde', model_a=modelAObj)
modelAObj.delete() # this will also delete the modelBObj
于 2012-12-29T22:29:29.997 回答