我有以下型号:
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
似乎不起作用。
答案 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。