Как получить доступ к данным модели, используя определенный id в django rest framework

Я хочу получить доступ к данным модели, которая называется IssueReport, используя ее ID в django rest framework, поэтому я использовал метод post для передачи ID вручную, чтобы получить данные IssueReport по этому ID, но он выдает мне ошибку

Method Not Allowed: /app/auth/getissuereport/
[10/Aug/2022 23:26:21] "GET /app/auth/getissuereport/ HTTP/1.1" 405 7036
Internal Server Error: /app/auth/getissuereport/
Traceback (most recent call last):
  File "D:\MMRDA\.venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "D:\MMRDA\.venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\MMRDA\.venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "D:\MMRDA\.venv\lib\site-packages\django\views\generic\base.py", line 84, in view
    return self.dispatch(request, *args, **kwargs)
  File "D:\MMRDA\.venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "D:\MMRDA\.venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "D:\MMRDA\.venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
    raise exc
  File "D:\MMRDA\.venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "D:\MMRDA\mmrda\apis\views.py", line 195, in post
    report=IssueReport.objects.get(pk=id)
  File "D:\MMRDA\.venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "D:\MMRDA\.venv\lib\site-packages\django\db\models\query.py", line 496, in get
    raise self.model.DoesNotExist(
DataSet.models.IssueReport.DoesNotExist: IssueReport matching query does not exist.

Вот мой views.py,

class GetIssueReportById(generics.GenericAPIView):

    serializer_class=GetIssueReportSerializer
    def post(self,request,*args,**kwargs):
        serializer=self.get_serializer(data=request.data)
        if serializer.is_valid(raise_exception=True):
            id=serializer.data.get('id')
            report=IssueReport.objects.get(pk=id)
            data=IssueReportSerializer(report,context=self.get_serializer_context()).data
            return Response({
                'message':"Data Fetched successfully",
                'status':"success",
                'data':data,
                },status=status.HTTP_200_OK)
        else:
            return Response({
                'message':"Data not fetched",
                'status':status.HTTP_400_BAD_REQUEST
                })

это мой serializers.py,

class IssueReportSerializer(serializers.ModelSerializer):
    class Meta:
        model=IssueReport
        fields='__all__'

class GetIssueReportSerializer(serializers.ModelSerializer):
    class Meta:
        model=IssueReport
        fields=('id',)

Так может ли кто-нибудь помочь мне получить доступ к данным, используя только ID или любой другой способ, Заранее спасибо.

Вы, очевидно, послали GET запрос на свой сервер, но в class GetIssueReportById(generics.GenericAPIView): вы объявили только post метод.

Либо определите def get(): метод в class GetIssueReportById, либо отправьте POST запрос на сервер (возможно, с помощью какого-то REST клиента из плагина для браузера или плагина VS Code). Если вы получаете id аргумент с id=serializer.data.get('id'), id поле должно быть в POST body.

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