使用自定义through选项卡优化Django manytomy查询

2024-10-01 07:11:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种型号:

class ModelA:
    fieldA = models.ManyToManyField(ModelB, through="CustomThroughTable")

    def foobar(self):
      return self.fieldA.through.objects.filter(fieldA=self)

class ModelB:
    whatever = models.CharField()

我想在ModelA中实现一个函数,它将打印出through表中fieldA的所有值。函数foobar的当前实现满足了我现在需要的功能,但我认为它的效率相当低。有更好的方法吗?谢谢。在


Tags: 函数selfreturnobjectsmodelsdefclassfoobar
1条回答
网友
1楼 · 发布于 2024-10-01 07:11:35

我看不出这个查询有什么低效的地方,你必须更精确地调试你的问题。在

也就是说,只需在through表中使用一个相关名称,就可以更简单地(同样有效地)实现相同的目标。在

class ModelA(models.Model):
    fieldA = models.ManyToManyField(ModelB, through="CustomThroughTable")

class ModelB(models.Model):
    whatever = models.CharField()

class CustomThroughTable(models.Model):
    modela = models.ForeignKey(ModelA, related_name="foobar")
    modelb = models.ForeignKey(ModelB)

相关问题 更多 >