Django view.py, как удалить элемент из вложенного dict перед возвратом ответа в react?
В настоящее время у меня есть функция в view.py, обрабатывающая POST запрос от react. Я хочу удалить элемент из вложенной дикты перед отправкой ответа обратно в react.
Мой view.py:
@api_view(['GET', 'POST'])
def TableViewList(request):
if request.method == 'POST':
serializer = TabelSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ответ от console.log на моем фронтенде выглядит следующим образом:
{data: {…}, status: 201, statusText: 'Created', headers: {…}, config: {…}, …}
config: {transitional: {…}, transformRequest: Array(1), transformResponse: Array(1), timeout: 0, adapter: ƒ, …}
data: {id: 121, position: 'Position 3', defect: 'Defect 3', tool: 'Tool 3', created_at: '2022-04-19T03:10:55.724869Z'}
headers: {allow: 'POST, GET, HEAD', content-length: '113', content-type: 'application/json', cross-origin-opener-policy: 'same-origin', date: 'Tue, 19 Apr 2022 03:10:55 GMT', …}
request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
status: 201
statusText: "Created"
[[Prototype]]: Object
Я действительно хочу удалить "created_at" перед отправкой ответа обратно в react. Я перепробовал множество способов, например, .pop() & del. Но безуспешно. Кто-нибудь знает, как это сделать?
Решение 1.
@api_view(['GET', 'POST'])
def TableViewList(request):
if request.method == 'POST':
serializer = TabelSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
data = serializer.data
del data['created_at']
return Response(data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Это будет работать.
Решение 2. Обновите модель created_at с помощью auto_now_add = True и в вашем сериализаторе удалите поле created_at.
Это тоже будет работать.