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.

Это тоже будет работать.

Вернуться на верх