request.data выглядит сырым яйцом, которое может быть не вкусным и содержит дополнительную информацию о запросе. Serializer.data похож на приготовленное яйцо di sh в зависимости от настроек вашего сериализатора.
И request.data будет использоваться в качестве входных данных для сериализатора. Если данные запроса действительны после проверки валидации сериализатора, то сериализатор может быть сохранен для создания экземпляра объекта. Если нет, сериализатор недействителен. Если все эти процедуры выполнены успешно, вы можете получить доступ к serializer.data, который является отформатированным словарем.
Вот определение данных запроса в DRF.
request.data returns the parsed content of the request body. This is similar to the standard request.POST and request.FILES attributes except that:
It includes all parsed content, including file and non-file inputs.
It supports parsing the content of HTTP methods other than POST, meaning that you can access the content of PUT and PATCH requests.
It supports REST framework's flexible request parsing, rather than just supporting form data. For example you can handle incoming JSON data in the same way that you handle incoming form data.
For more details see the parsers documentation.
Вот пример request.data
{
"csrfmiddlewaretoken":[
"RrwwZyZCmEElmGG16muxEopwXbRZDsARYcDjraIC1kmcjEux3OIOZoeG7XUSmL4V"
],
"email":[
"myqepuzez@mailinator.com"
],
"first_name":[
"Roary"
],
"last_name":[
"Daugherty"
],
"password":[
"In quam qui magni re"
],
"phone":[
"+1 (542) 262-5207"
],
"username":[
"tikit"
]
}
И пример данных сериализатора:
{
"id":3,
"group_ids":[
],
"role_ids":[
],
"email":"myqepuzez@mailinator.com",
"first_name":"Roary",
"is_active":False,
"last_name":"Daugherty",
"phone":"+1 (542) 262-5207",
"username":"tikit"
}