Скажем у нас viewset:
class StudentsSet(viewsets.ModelViewSet):
queryset = Students.objects.all()
serializer_class = StudentsSerializer
def get_queryset(self):
queryset = Students.objects.filter(present=True)
return queryset
И собственно сам сериалайзер с методом, через который я получаю некую информацию:
class StudentsSerializer(serializers.ModelSerializer):
info = serializers.SerializerMethodField('get_info')
class Meta:
model = Students
fields = ('id', 'info')
def get_info(self, instance):
return student_info = Students.objects.filter(id=instance.id)
Пример конечно кривоват, НО сут в чём -
по каждому студенту каждый раз будет вызываться метод get_info, что будет замедлять в дальнейшем загрузку страницы, на которую эти данные передаются. Поэтому я бы хотел информацию сразу по ВСЕМ id, скажем использовав IN:
Students.objects.filter(id__in=(1, 2, 3))
Но из instance можно получить только 1 id за раз, а как получить их ВСЕ?