Сериализатор увеличивает запрос в django rest framwrork
У меня есть API, который возвращает данные, включая данные отношения ManyToMany, но когда я вижу запросы в Django Debug Toolbar, это более 100 запросов на бэкенде, что я считаю не очень хорошим подходом, даже если количество записей увеличивается, запросы также увеличиваются. Я просто хочу меньше запросов, чтобы API мог отвечать быстрее, есть ли способ достичь этого?
models.py
class Package(models.Model):
name = models.CharField(max_length=255, default='')
description = models.CharField(max_length=255, null=True, blank=True)
project = models.ForeignKey(Project, on_delete=models.CASCADE, null=True)
is_active = models.IntegerField(default=1, null=True)
tags = models.ManyToManyField(Tag, related_name='packageroom')
members = models.ManyToManyField(User,related_name='packages')
account = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
class Meta:
db_table = 'packages'
serializers.py
class PackageSerializer(serializers.ModelSerializer):
tags = TagSerializer(read_only=True, many=True) # added to fetch tags details
team_members = UserDetailSerializer(read_only=True, many=True) # added to fetch team members details
class Meta:
model = Package
fields = ['id', 'name', 'description', 'project', 'tags', 'team_members']
views.py
query = Package.objects.filter(project=project_id, is_active=1).prefetch_related('tags', 'team_members').select_related('project', 'account')
packages = PackageSerializer(query, many=True).data
return Response(packages)
Я просто хочу меньше запросов, чтобы API мог отвечать быстрее, есть ли способ достичь этого?