2011-11-03 77 views
1

我有2种型号,邮政和类别:Django的IntegrityError而删除对象

class Category(models.Model): 
    # some fields 

class Post(models.Model): 
    category = models.ForeignKey(Category, related_name='posts', 
           on_delete=models.SET(get_default_category())) 

get_default_category基本上只是为get_or_create的快捷方式。

当我尝试删除一些对象(使用.delete(),或从管理应用程序),我得到以下异常:

IntegrityError: (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`tatatata`.`discussions_post`, CONSTRAINT `category_id_refs_id_783afa2fc9c73207` FOREIGN KEY (`category_id`) REFERENCES `discussions_category` (`id`))') 

有什么不对?

回答

2

尝试传球,而不是一个get_default_category()调用。

category = models.ForeignKey(Category, related_name='posts', 
           on_delete=models.SET(get_default_category)) 
+0

谢谢你,似乎工作。 – eXtractor