Как получить верхние n строк в сериализаторах фреймворка django rest, используя отношения сериализаторов

У меня есть сериализатор, который отлично работает для всех данных, получаемых из базы данных. Я хочу получить верхние n номеров строк, отсортированных по некоторому значению.

Ниже приведен мой код в файле views.py:

@api_view(['GET'])
def org_api(request, org_id):
    if request.method == 'GET':
        try:
            org = Organization.objects.prefetch_related('team').get(org_id=org_id)
        except Organization.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)
        serializers = OrgSerializers(org)
        return Response(serializers.data)

А вот мой код serializers.py:

class OrgSerializers(serializers.ModelSerializer):
    team = TeamSerializer(many=True, read_only=True)
    class Meta:
        model = Organization
        fields = ['org_id','name', 'team']

А вот мой код TeamSerializers:

class TeamSerializer(serializers.ModelSerializer):
    ticker = serializers.PrimaryKeyRelatedField(queryset=Team.objects.all())
    class Meta:
        model = Team
        fields = ['name', 'resignation', 'org_id']

Возвращение всех членов команды одной организации, как показано ниже:

{
    "org_id": "ABC",
    "name": "Stocks Telegraph",
    "team": [
        {
            "name": "Mr. Timothy D. Cook",
            "title": "CEO & Director",
            "org_id": "ABC"
        },
        {
            "name": "Mr. Luca  Maestri",
            "title": "CFO & Sr. VP",
            "org_id": "ABC"
        },
        {
            "name": "Mr. Jeffrey E. Williams",
            "title": "Chief Operating Officer",
            "org_id": "ABC"
        },
        {
            "name": "Ms. Katherine L. Adams",
            "title": "Sr. VP, Gen. Counsel & Sec.",
            "org_id": "ABC"
        },
        {
            "name": "Ms. Deirdre  O'Brien",
            "title": "Sr. VP of People & Retail",
            "org_id": "ABC"
        },
        {
            "name": "Mr. Chris  Kondo",
            "title": "Sr. Director of Corp. Accounting",
            "org_id": "ABC"
        }
    ]
}

Попробуйте это (учитывая и ваш комментарий):

class TeamSerializer(serializers.ModelSerializer):
    ticker = serializers.PrimaryKeyRelatedField(queryset=Team.objects.all().order_by('priority')[:5])
    class Meta:
        model = Team
        fields = ['name', 'resignation', 'org_id']

Попробуйте сделать это, используя эту пользовательскую логику.

def get_limited_teams(self, request, pk=None):
    teams= Team.objects.all().order_by('priority')[:5] # Filter,order, no of rows(5) based on requirement
    serializer = TeamsSerializer(teams, many=True)
    return Reponse(serializer.data)
Вернуться на верх