Получение параметров в запросе get в django rest framework?
Я хочу получить параметры, отправленные в мой rest api
что я хочу получить параметры, чтобы использовать их для потребления другого api и вернуть ответ стороннего api но в name и comic я получаю None
http://127.0.0.1:8000/searchComics/ {name: "3-D Man", "comics "12:}
это мое мнение
class MarvelApi(APIView):
def get(self, request):
private_key = "88958f2d87bd2c0c2fa07b7ea654bcdf9f0389b3"
public_key = "8d415ffcc9add56b0a47c0a7c851afc3"
ts = 1
md5_hash = "46ecbbd63108b0561b8778a57823bd34"
query_params = self.request.query_params
name = query_params.get('kword', None)
comic = query_params.get('comic', None)
end_point = f"https://gateway.marvel.com:443/v1/public/characters?ts={ts}&apikey={public_key}&hash={md5_hash}&name={name}&comic={comic}"
response = requests.get(end_point)
response_json = json.loads(response.text)
return Response(status=status.HTTP_200_OK, data=response_json)
Я думаю, что проблема заключается в этих двух строках имя = query_params.get('kword', None) comic = query_params.get('comic', None) которые не захватывают значения правильно, знаете ли вы, как это решить?
Вы хотели получить их из метода GET
, но вместо этого вы дали словарь, поэтому я предполагаю, что вы отправили его через POST
. Вместо словаря вы должны использовать url:
http://127.0.0.1:8000/searchComics/?name=3-D+Man&comic=12
А у вас, вероятно, опечатка. У вас в словаре было множественное число "комиксов", а вы ищете единственное число "комиксов".
И если вы хотите иметь данные с методом POST
, просто измените def get(...)
на def post(...)
.