最近我在 Django 中发现了一个奇怪的行为。然后,我开始认为问题出在我做这项工作的方式上。
假设我们有 2 个模型
class A(models.Model):
attr1 = models.CharField()
...
class B(models.Model):
a = models.ForeignKey("A",
related_name = "bs"
blank = True,
null = True)
所以,如果我有一些 B 的项目,没有与 A 的关联,比如 b1、b2、b3,当我设置 A 的新实例时,比如 a1,如果我查询
a.bs.all()
b1, b2 and b3 are returned.
它出什么问题了?当我创建一个新实例时,它不应该产生任何关系。我知道 b1,b2 和 b3 没有关系,但默认情况下它们不能关联到任何新实例。
有人知道如何以 Django 方式进行吗?
我知道如果 a1.id: return [] else: a1.bs.all() 我可以做到这一点
但我认为这不是正确的做法。
谁能帮我?
先感谢您