Django模型外键删除

时间:2011-09-02 19:24:43

标签: django model

我有以下型号:

class Client(models.Model):
    user = models.OneToOneField(DjangoUser, unique=True)
    address = models.ForeignKey(Address,blank=True)

class Address(models.Model):
    (...)

然后我这样做:

client=Client()
client.address=address #any Address instance
client.save()

现在:如何从客户端删除外部关联密钥?

client.address=None 

似乎不起作用。

3 个答案:

答案 0 :(得分:1)

您当前的模型设置不允许null=True,因此您无法将其设置为None

答案 1 :(得分:1)

address = models.ForeignKey(Address,blank=True, null=True)

键为null = True以及blank = True

另外,请确保syncdb等

答案 2 :(得分:1)

为了能够使外键无效,仅在blank中设置是不够的。您还必须指定还在该字段上设置null=True。请参阅The Difference Between Blank and Null