Django Rest Framework: потеря порядка при попытке вернуть get_queryset() в методе get modelviewset

В get_queryset я могу получить список кандидатов в нужном мне порядке, но когда я возвращаю его, то в ответе API я вижу его в другом порядке

serilizer.py

class CandidateListSerializer(serializers.ModelSerializer):
    """
    Candidate serializer
    """

    job_skill_detail = serializers.SerializerMethodField(read_only=True)
    job_role_detail = serializers.SerializerMethodField(read_only=True)
    primary_skills_detail = serializers.SerializerMethodField(read_only=True)

    def get_job_skill_detail(self, obj):
        if obj.job_skill:
            return obj.job_skill.name

    def get_job_role_detail(self, obj):
        if obj.job_role:
            return obj.job_role.name

    def get_primary_skills_detail(self, obj):
        return obj.primary_skills.all().values(
            "id",
            "name",
        )

    class Meta:
        model = Candidate
        fields = "__all__"

моя view.py функция get_queryset в modelviewset api

def get_queryset(self):
        if "Admin" in self.request.user.role or "Recruiter" in self.request.user.role:
            return self.queryset
        if "Client" in self.request.user.role:
            candidates_source_to_client = CandidateSubmission.objects.filter(company=self.request.user.company).values_list('candidate', flat=True)
            print(f"Candidates id from candidate submission model: {candidates_source_to_client}")
            candidates = self.queryset.filter(
                Q(
                    band__in=CompanyBands.objects.filter(
                        company=self.request.user.company
                    ).values_list("band", flat=True)
                )
                | Q(id__in=candidates_source_to_client)
            )
            print(f"candidates from database with cliend company and company band: {candidates}")
            candidates_final = candidates.annotate(
                relevancy=Count(Case(When(id__in=candidates_source_to_client, then=1)))
            ).order_by("-relevancy")
            print(f"final candidates list: {candidates_final}")
            return candidates_final

мой печатный ответ из окончательного списка кандидатов, который я получаю

final candidates list: <QuerySet [<Candidate: Amresh Giri>, <Candidate: Dishita Vishwakarma>, <Candidate: Rhaan Kumaad 2>, <Candidate: Raan Kaad>, <Candidate: Vigneshkumar Chinnadurai>, <Candidate: Rhan Kumad>, <Candidate: Apurva Dhakre>, <Candidate: Saiba Kumar>, <Candidate: Ramona>]

Это заказ, который я хочу, но не могу получить этот заказ, в ответ он приходит в перепутанном порядке.

Как я могу получить заказ, который я указал выше в моем api ответе?

любая помощь будет оценена по достоинству...

Вернуться на верх