gpt4 book ai didi

django - 如何在Django中使用ForeignKey初始化一个空对象?

转载 作者:行者123 更新时间:2023-12-02 00:11:19 24 4
gpt4 key购买 nike

我的 models.py 看起来像这样:

class B(models.Model):
...

class C(models.Model):
...

class D(models.Model):
...

class A(models.Model):
b = models.ForeignKey(B, blank=True, null=True)
c = models.ForeignKey(C, blank=True,null=True)
d = models.ForeignKey(D, blank=True,null=True)

在views.py中,我必须初始化一个空的A,然后再填充它。我可以使用

i = A().save()

但是当我尝试类似的事情时:

i.b.add(objectb)

发生此异常:

'NoneType' object has no attribute 'b'

我尝试取消 null=True :

class A(models.Model):
b = models.ForeignKey(B, blank=True)
c = models.ForeignKey(C, blank=True)
d = models.ForeignKey(D, blank=True)

但是随后发生了另一个异常:

A.b_id may not be NULL

我不知道如何初始化一个空的但不是“None”的A。

我需要你的帮助,

谢谢你

最佳答案

我认为你很困惑ManyToManyFieldForeignKey

要初始化外键,您只需执行以下操作:

i = A().save()
i.b = objectb
i.save()

其中objectb是类B的实例

i.b.add(objectb) 抛出异常的原因是,

i.b 正在访问模型实例 i 的属性 b,该属性为 None,并且当ORM 尝试调用 b 上的 add,它确实是 None。因此出现了错误。

关于django - 如何在Django中使用ForeignKey初始化一个空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20569910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com