2017-04-08 114 views
0

我有我的模型Config,其中包含一个外键PeriodicTask。 我想要有1对1的关系,这意味着当我删除Config时,PeriodicTask被删除,反之亦然。Django模型删除外键

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

你有没有看到我的配置对象的实例(http://stackoverflow.com/a [这个答案?]/5185684/4974980) –

+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) 

实例即将被删除