Django Model\uuu str_uu函数导致大量查询

2024-06-26 17:51:43 发布

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

我有以下型号:

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部分显示的内容(每个项目的重复操作继续进行):imgur image


Tags: nameself名称falsemodel管道modelsnull