2017-04-08 193 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) 

實例即將被刪除