我有我的模型Config
,其中包含一个ForeignKey PeriodicTask
。
我希望有一对一的关系,这意味着当我删除Config
时PeriodicTask
被删除,反之亦然。
class Config(models.Model):
name = models.CharField(max_length=200, unique=True)
task = models.ForeignKey(PeriodicTask, default=None, null=True,
blank=True, on_delete=models.CASCADE)
使用CASCADE
只有我的配置被删除,当PeriodicTask被删除但反之亦然。此外PeriodicTask
属于外部模块,因此我无法直接访问它。
如何实现1对1删除关系?
答案 0 :(得分:0)
这对我有用:
from django.db.models.signals import pre_delete
class Config(models.Model):
name = models.CharField(max_length=200, unique=True)
task = models.ForeignKey(PeriodicTask, default=None, null=True,
blank=True, on_delete=models.CASCADE)
def delete_task(sender,instance,using, **kwargs):
instance.task.delete()
pre_delete.connect(delete_task, sender=Config)
instance是我要删除的Config对象的实例