Как передать параметры строки запроса в URL в Django Rest Framework

Я пытаюсь воспроизвести этот же URLhttp://localhost:1555/api/Data/GetPendingLevelTwo?levelId=2 в Django он принимает параметр запроса. Подумав, я использую представление на основе функций для всего проекта и никаких сериализаторов. Я просто получаю данные из базы данных и показываю их в front end.

Вот что я пробовал

views.py:

 def GetPendingLevelTwo(request, levelId):
     if request.method == 'GET':
        cursor = connection.cursor()
        cursor.execute('EXEC [dbo].[usp_getLevelTwo] @lvlOneId=%s,', (levelId))
        result_set = cursor.fetchall()
        print('PendingLevelOne', result_set)
        data = []
        for i in range(len(result_set)):
            data.append({
                'L1Id': result_set[i][0],
                'Level1':result_set[i][1]
            })
        return Response(data)

urls.py:

Здесь я хочу передать ? вместо /

 path('Data/GetPendingLevelTwo/<int:levelId>', GetPendingLevelTwo, name='GetPendingLevelTwo'),

Вы можете удалить часть <int:levelId> из шаблона URL.

path('Data/GetPendingLevelTwo/', GetPendingLevelTwo, name='GetPendingLevelTwo'),

Затем вы можете захватить параметр запроса в FBV с помощью request.GET.get('parameter_name')

def get_pending_level_two(request):
    level_id = request.GET.get('levelId', None)
    if level_id:
        print("level_id is present in the Query param")
    else:
        print("level_id is missing")

Примечание: Это решение не тестировалось.

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