当涉及到 Django 中的多对多字段时,使用如下所示的"通过"表有什么区别......
class A(models.Model):
things = models.ManyToManyField("B", through=ThroughModel)
...
class B(models.Model):
text = models.TextField()
...
class ThroughModel(models.Model):
a = models.ForeignKey(A)
b = models.ForeignKey(B)
与像这样在中间表中仅指定相关名称相比?
class A(models.Model):
...
class B(models.Model):
text = models.TextField()
...
class ThroughModel(models.Model):
a = models.ForeignKey(A, related_name="things")
b = models.ForeignKey(B)
无论哪种方式,您都应该能够引用关系,例如
a_instance.things
右?在数据库中实现这一点之间是否存在一些幕后差异?
区别在于您如何从b_instance
引用a_instance
:
b_instance.a_set
在第一种情况下和
b_instance.things
在第二种情况下