【发布时间】:2015-08-11 18:57:18
【问题描述】:
class Basket:
name = models.CharField(max_length=50, blank=True, null=True)
class Apple:
name = models.CharField(max_length=50, blank=True, null=True)
basket = models.ForeignKey(Basket, on_delete=models.PROTECT)
...
myapple = new Apple(name="my")
myapple.save()
...
auto_created_basket = myapple.basket
myapple.basket = existing_basket
auto_created_basket.delete()
我尝试将 auto_created_basket 换成另一个,但是当我尝试删除它时出现错误。
"Cannot delete some instances of model 'Basket' because they are referenced through a protected foreign key: 'Apple.basket'", [<Apple: My apple>])
【问题讨论】:
-
这是因为苹果中的外键引用了篮子里的东西,所以如果你删除篮子,那么苹果中的那个变量就会混淆。
-
first:
myapple = new Apple(name="my")会抛出语法错误。删除new。第二:你应该指定苹果应该放在哪个篮子里。Apple(name='my', basket=b)其中b是一个实际的购物篮实例。
标签: python django foreign-key-relationship