我的Django应用程序中有两个模型
class Product(models.ModelField):
name = ...
class Discount(models.ModelField):
product_id = models.OneToOneField(Product)
基本上,每个产品都可以有一个可选的折扣。现在,假设我只有一个产品p
附加折扣d
。我想删除与产品p相关的折扣。所以,我用
p.discount.delete()
虽然这会使Discount.objects.all()
返回[]
,但p.discount
仍然是关联的折扣对象。
如何将此属性设置为None
?
答案 0 :(得分:1)
p.discount = None
更改数据库中的某些内容不会影响内存中的模型实例。在1.8中,您还可以轻松地从db:
重新加载对象p.refresh_from_db()
或1.8之前:
p = Product.objects.get(pk=p.pk)