我有以下型号:
class PipeType(models.Model):
name = models.CharField(max_length=255, null=False, blank=False)
class Pipe(models.Model):
pipe_type = models.ForeignKey(PipeType)
name = models.CharField(max_length=255, null=False, blank=True)
def __str__(self):
# return self.pipe_type.name + ' | ' + self.name # makes for 1081 sql queries
return self.name # makes for 29 sql queries
回流管_类型.名称+ ' | ' + 自身名称行使简单地显示管道的单选下拉列表需要16秒以上的时间。如果我删除它并简单地显示自身名称字段,那么它就完全不同了。(注意:管道表中有263个项目,只有31个管道类型。)我是SQL新手,我很难弄清楚为什么要花这么长时间来加载?在
对于同一个管道,似乎有多个对PipeType表的重复查询,我不知道为什么会这样。任何帮助都将不胜感激。以下是我的Django工具栏SQL部分显示的内容(每个项目的重复操作继续进行):
将
.select_related('pipe_type')
追加到为下拉列表提取数据的查询集中,以将__str__
的第一种形式减少为一个查询。在相关问题 更多 >
编程相关推荐