Я получаю KeyError в request.data[] в методе put в postman, а код работает? [закрыто]
У меня есть api, написанный на django rest framework. есть метод update и нет проблем, когда данные обновляются с локального хоста. но я получаю KeyError='Person', когда я пытаюсь вызвать метод put на postman в коде ниже.
@action(methods=['put'], detail=True, url_path='personupdate')
def personupdate(self, request, pk):
transactionSaveId = transaction.savepoint()
# person = self.get_object(self,pk)
person = Person.objects.get(id=pk)
getPersonData = {}
getPersonData = request.data['Person']
if 'PictureType' in request.data['Person']:
request.data['Person'].pop('PictureType')
if 'JobStartDate' in request.data['Person']:
request.data['Person'].pop('JobStartDate')
if 'FormerSeniority' in request.data['Person']:
request.data['Person'].pop('FormerSeniority')
serializer = PersonCreateUpdateSerializer(person, data=getPersonData)
the body in postman is:
{
"Address": null,
"Email": "adsd@gmail.com",
"FullName": "Post Man",
"IdentityID": "00000000000",
"JobStartDate": "2013-01-28T22:00:00Z",
"Name": "Post",
"Nationality": null,
"PictureData": null,
"PictureType": null,
"State": null,
"Surname": "Man",
"Telephone": "1111111111"
}
и я получил url из сети, который работает. http://127.0.0.1:8000/person/18039/personupdate/
данные обновляются в db, когда я вызываю из localhost api. В строке getPersonData = request.data['Person'] я получаю эту ошибку от postman: KeyError: 'Person'
Я перепробовал все, начиная с postman, но не могу исправить это.
Я получаю 500 Internal Server Error в postman. и вывод таков:
{ "сообщение": "Во время работы произошла ошибка", "результат": {}, "статус": false, "status_code": 500, "error_code": 3 }