Python 序列化对象会运行太多SQL查询

Python 序列化对象会运行太多SQL查询,python,django,django-queryset,django-orm,django-select-related,Python,Django,Django Queryset,Django Orm,Django Select Related,我正在尝试序列化设置为列表的相关字段。问题是序列化QuerySet效率非常低 class ZipCode(..): city = ForeignKey... code = CharField... class CityManager(models.Manager): def get_queryset(self): return super().get_queryset().select_related('county').prefetch_related

我正在尝试序列化设置为列表的相关字段。问题是序列化
QuerySet
效率非常低

class ZipCode(..):
    city = ForeignKey...
    code = CharField...

class CityManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().select_related('county').prefetch_related('zipcodes').annotate(
            realestate_count=Count('zipcodes__realestates')).order_by('name', )


class City(..):
    objects = CityManager()
    ....
    
    
    @property
    def zip_codes_list(self):
        return self.zipcodes.values_list('code', flat=True)
正如您所看到的,我正在预取
zipcodes
,所以我认为它不应该执行这么多查询

class CitySerializer(serializers.ModelSerializer):
    county = CountySerializer(read_only=True)
    zip_codes_list = serializers.ListField(read_only=True)
    realestate_count = serializers.IntegerField(default=0, read_only=True)
    indexed_at_hmnz = serializers.CharField(read_only=True)
    index_status_display = serializers.CharField(source='get_index_status_display', read_only=True)

    class Meta:
        model = City
        fields = ['id', 'name', 'county', 'realestate_count', 'zip_codes_list','indexed_at', 'indexed_at_hmnz',
                  'index_status_display', 'is_followed']
根据Django调试工具栏,它分别查询每个对象的zipcodes


你知道如何提高效率吗?

经理真的被安排好了吗?您发布的代码没有显示该部分。@GlennDJ是的,它是。经理是否真的被设置了?您发布的代码没有显示该部分。@GlennDJ是的,它是。