gpt4 book ai didi

python - 如何在django模型中选择相关的,所以它不会产生很多子查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:02 25 4
gpt4 key购买 nike

我有很多模型以某种方式相互引用,例如:

港口指的是城市,而城市又指的是国家。然后在 django admin 中我想在 list_display 端口国家中显示:

class Country(models.Model):
title = models.CharField()


class City(models.Model):
title = models.CharField()

country = models.ForeignKey(Country)


class Port(models.Model):
city = models.ForeignKey(City)

def __str__(self):
return self.city.county.title

所以基本上对于每个端口,django 都会生成更多查询。我假设 select_related 在这种情况下会以某种方式帮助我,但如何在模型中正确使用它?

最佳答案

您可以创建一个 PortManager 类并覆盖 get_queryset 方法并在模型中引用它:

class PortManager(models.Manager):
def get_queryset(self):
return super(PortManager, self).get_queryset().select_related()


class Port(models.Model):
city = models.ForeignKey(City)
objects = PortManager()

def __str__(self):
return self.city.country.title

关于python - 如何在django模型中选择相关的,所以它不会产生很多子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41035786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com