Когда я выполняю запрос PUT или PATCH из Angular в Django, я получаю ответ с кодом 200. Но на самом деле никаких изменений в базе данных нет.
API является API-интерфейсом REST для Django, использующим DRF.
Когда я делаю какие-либо запросы от Почтальона, все работает нормально.
Но когда я пытаюсь выполнить запрос в Angular, ответ API с кодом 200, но в базе данных нет изменений.
Тот же запрос с теми же параметрами на Angular
let headers = new HttpHeaders(
{
'Authorization': 'Token ' + this._userService.getToken(),
'Content-Type': 'application/x-www-form-urlencoded'
}
);
return this._http.patch( this.urlAPI, json , {headers: headers} );
//json is the object that I would to modify
Затем я попытался отладить, как объект, который получает Django, когда я отправляю данные в Angular и в Postman, и в этом разница.
Вероятно, это главная ошибка, но я не знаю, как отправить данные. Если я пытаюсь изменить тип контента на JSON, я получаю ответ «400 Bad Request».
Выход почтальона:
<QueryDict: {'address': ['Some Address']} >
А Угловой вывод:
<QueryDict: {'{"address":"Some Address"}': ['']} >
Так что я действительно потерян.
UPDATE
Плохое решение для этого я делаю:
let body = new HttpParams()
.set('name', client.name)
//.set(... whatever);
return this._http.patch( this.urlAPI, body , {headers: headers} );
и отлично работает.
Но мне нужно автоматизировать приведение