Django重复查询

Django重复查询,django,postgresql,django-rest-framework,query-optimization,Django,Postgresql,Django Rest Framework,Query Optimization,我正在尝试使用与选择和预回迁相关的功能优化我的django应用程序,但由于某些原因,它不起作用 这是我的模型: 课堂问题(models.Model): title=models.CharField(最大长度=100) content=models.TextField() author=models.ForeignKey(用户,on_delete=models.CASCADE) 类配置文件(models.Model): user=models.OneToOneField(用户,on_delete=

我正在尝试使用与选择和预回迁相关的功能优化我的django应用程序,但由于某些原因,它不起作用 这是我的模型:

课堂问题(models.Model):
title=models.CharField(最大长度=100)
content=models.TextField()
author=models.ForeignKey(用户,on_delete=models.CASCADE)
类配置文件(models.Model):
user=models.OneToOneField(用户,on_delete=models.CASCADE)
image=models.ImageField(blank=True,默认值='avatar.png')
这是我的
序列化程序


类加载mixin:
@类方法
def设置\u加载(cls、查询集):
如果hasattr(cls,“\u选择相关字段”):
queryset=queryset.select_相关(*cls._选择_相关_字段)
如果hasattr(cls,“\u预取\u相关\u字段”):
queryset=queryset.prefetch_related(*cls._prefetch_related_字段)
返回查询集
类QuestionSerializer(急切加载Mixin、serializers.ModelSerializer):
profile=serializers.SerializerMethodField()
类元:
模型=问题
字段=(
“id”,
“头衔”,
“作者”,
"简介",,
“内容”,
)
_选择相关字段=['author']
_预取_相关_字段=['author__profile']
@静力学方法
def get_配置文件(obj):
profile=profile.objects.get(用户=obj.author)
返回ProfileSerializer(profile).data
但这就是我在django调试工具栏中得到的:

从“账户档案”中选择•••其中“账户档案”。“用户id”=14限制21`

和10个类似的查询。

您使用的是哪种数据库管理系统?不管怎样,在表名和列名中加双引号似乎不是任何数据库管理系统的语法,如果您使用的是mysql,它应该是单引号。我使用的是PostgreSql。您可以在视图中添加如何使用它吗?