2011-05-05 50 views
0

我在許多對許多領域使用,通過表中刪除的對象時:Django的:誠信誤差與「到」多到許多領域

class EmailType(models.Model): 
    name = models.CharField(max_length=200) 

class Email(models.Model):   
    email = models.EmailField(max_length=200) 
    type = models.ForeignKey(EmailType,blank=True,null=True,default='') 

class EntityEmail(Email):   
    entity = models.ForeignKey("Entity") 

class Entity(models.Model): 
    name = models.CharField(max_length=200) 
    emails = models.ManyToManyField(Email,through="EntityEmail") 

如果我創建一個新的實體並分配一個新的電子郵件。一切順利。 但是,如果我想從管理員中刪除此實體,則會引發完整性錯誤。

不能刪除或更新父行: 一個外鍵約束失敗 (thedbtheapp_entityemail, 約束 entity_id_refs_id_28f53d76782ad9c6 外鍵(entity_id)參考文獻 theapp_entityid))」

如果我先刪除EntityEmail,一切都可以。

有沒有辦法避免這個問題?我使用的是django 1.2,我無法使用1.3的on_delete選項。

回答

0

您可以在實體模型上覆蓋Model.delete()方法以匹配on_delete的功能,如果這真的是您以前的樣子。