#django #web #token
#django #веб #токен
Вопрос:
Я пытаюсь добавить данные на views.py Я отправляю параметры имени пользователя и пароля в теле JSON с помощью метода POST от POSTMAN. Обычно функция работает успешно, как показано ниже:
json_str=((request.body).decode('utf-8'))
json_data = json.loads(json_str)
new_device = Device(id=json_data["id"], status=json_data["status"])
try:
new_device.save()
resp_data = {
'code': 200,
"success": True
}
return JsonResponse(resp_data)
except Exception as e:
error_data = {
"success": False,
"error": str(e)
}
return JsonResponse(error_data)
После включения пакета djangorestframework_simplejwt в моем проекте и успешного его запуска я изменил urls.py ссылка, подобная:
path('add/', add_device)
Для path('add/', add_device.as_view())
На views.py:
class add_device(APIView):
permission_classes = (IsAuthenticated,)
def get(self,request):
json_str=((request.body).decode('utf-8'))
json_data = json.loads(json_str)
new_device = Device(id=json_data["id"], status=json_data["status"])
try:
new_device.save()
resp_data = {
'code': 200,
"success": True
}
return JsonResponse(resp_data)
except Exception as e:
error_data = {
"success": False,
"error": str(e)
}
return JsonResponse(error_data)
Но теперь мне всегда возвращается сообщение об ошибке json:
{
"detail": "Method "POST" not allowed."
}
Как мне это исправить?
Спасибо за всю помощь..
Ответ №1:
Я нашел решение, использовал:
def post (self, request, * args, **kwargs):
и это работает.