Как передать параметры строки запроса в 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")
Примечание: Это решение не тестировалось.