最近我在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: 返回[] 其他: a1.bs.all()
但我认为这不是正确的做法。
任何人都可以帮助我吗?
提前谢谢