内部服务器错误:Django Rest Framework 视图集中的类型错误

问题描述 投票:0回答:0

我正在使用 Django Rest Framework 构建 API 来管理分配。我有一个

Assignment
模型的视图集,它允许通过对
/api/assignment/Assignment/
的 POST 请求创建新的分配。但是,当我发出请求时,我收到带有以下回溯的“内部服务器错误”:

Internal Server Error: /api/assignment/Assignment/
Traceback (most recent call last):
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\django\views\decorators\csrf.py", line 56, in wrapper_view
    return view_func(*args, **kwargs)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\rest_framework\viewsets.py", line 125, in view
    return self.dispatch(request, *args, **kwargs)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\rest_framework\views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\rest_framework\views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "D:\project\Assignments-Api\.venv\Lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
    return int(value)
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'DeferredAttribute'

错误似乎是出现在Django Rest Framework的

views.py
文件中,但我无法找出问题的根本原因。什么可能导致此错误,我该如何解决?但数据按预期保存在模型中。

更新

views.py

from rest_framework import (
    viewsets,
    mixins,
)

from django_filters.rest_framework import DjangoFilterBackend

from rest_framework import (
    viewsets,
    mixins,
)
from assignment.models import (
    Assignment,
    Tag,
)
from assignment import serializers
from .pagination import CustomPagination


class AssignmentViewSet(viewsets.ModelViewSet):
    """View for manage assignment APIs."""

    serializer_class = serializers.AssignmentSerializer
    queryset = Assignment.objects.all()
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["name", "last_updated_by"]
    pagination_class = CustomPagination


class TagViewSet(
    mixins.DestroyModelMixin,
    mixins.UpdateModelMixin,
    mixins.ListModelMixin,
    mixins.CreateModelMixin,
    viewsets.GenericViewSet,
):

    """Manage tags in the database."""

    serializer_class = serializers.TagSerializer
    queryset = Tag.objects.all()

django django-rest-framework django-views django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.