Возникновение 500 внутренней ошибки сервера при POST-запросе API Django

Я сталкиваюсь с внутренней ошибкой сервера 500 при попытке отправить POST-запрос к API Django для создания объекта. Я проверил свой код, но не могу определить источник проблемы.

Вот код, который я использую: Serializer

class DeliverableSerializer(serializers.ModelSerializer):
    class Meta:
        model = Deliverable
        fields = ("num", "project",  "reviewer", "deliverable_type", "description", "due_date",
                  "id", "draft")

Виды

class DeliverableAPIView(APIView):
    def post(self, request, format=None):
        serializer = DeliverableSerializer(data=request.data)
        if serializer.is_valid():
            instance = serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    def put(self, request, pk, format=None):
        try:
            deliverable = Deliverable.objects.get(pk=pk)
            serializer = DeliverableSerializer(deliverable, data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data)
            else:
                return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        except Exception as e:
            return Response({"error": "An unexpected error occurred."}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

URLs

path('api/deliverables/', DeliverableAPIView.as_view(), name='deliverable-list'),  # For POST
path('api/deliverables/<int:pk>/', DeliverableAPIView.as_view(), name='deliverable-detail'),  # For PUT

POST-запрос в моем скрипте

def post_data(endpoint, data):
    """Send data to the API via POST request."""
    try:
        response = requests.post(API_URL + endpoint, json=data, timeout=10)
        response.raise_for_status()  # Raises an HTTPError for bad responses
        return response.json()  # Return the JSON response if needed
    except requests.exceptions.HTTPError as err:
        raise Exception(f"HTTP error occurred while posting to {endpoint}: {err}")  # For HTTP errors
    except requests.exceptions.RequestException as err:
        raise Exception(f"Error posting data to {endpoint}: {err}")

Когда я пытаюсь отправить POST-запрос на конечную точку /api/deliverables/, выдается ошибка 500. Я также пробовал использовать Postman, но не могу протестировать его должным образом из-за ограничений на localhost.

Я проверил, что данные запроса соответствуют полям сериализатора, и модель настроена правильно. Каковы могут быть причины этой 500-й ошибки и как я могу ее диагностировать?

Заранее благодарю за помощь.

Я попробовал отправить POST-запрос к своему Django API на конечную точку /api/deliverables/ с помощью скрипта и Postman. Я ожидал, что API примет данные в соответствии с моим запросом DeliverableSerializer и создаст новый объект Deliverable в базе данных. Однако вместо успешного создания объекта я получил сообщение 500 Internal Server Error, указывающее на то, что на стороне сервера что-то пошло не так.

Вот структура данных, которые я отправляю в запросе:

{
    "num": 1,
    "project": 1,  # ID of the project
    "reviewer": 2,  # ID of the reviewer
    "deliverable_type": 3,  # ID of the deliverable type
    "description": "This is a test deliverable.",
    "due_date": pd.to_datetime(row['Due Date'], errors='coerce').date().strftime('%Y-%m-%d')                              
    "id": "folder_id_123",
    "draft": true  # Boolean value
}

Я также проверил данные запроса и убедился, что они соответствуют ожидаемым полям в сериализаторе, но ошибка сохраняется.

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