对多对多关系使用不带相关名称或具有相关名称的"through"表的差异

  • 本文关键字:through 关系 python django django-models
  • 更新时间 :
  • 英文 :


当涉及到 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

在第二种情况下

相关内容

  • 没有找到相关文章

最新更新