我有2个模型,帖子和类别:
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()或来自admin应用程序),我得到以下异常:
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`))')
怎么了?
答案 0 :(得分:2)
尝试传递可调用而不是get_default_category()
。
category = models.ForeignKey(Category, related_name='posts',
on_delete=models.SET(get_default_category))