代码之家  ›  专栏  ›  技术社区  ›  Joseph Adam

如何使用RetrieveAPIView在Django Rest框架中基于特定字段检索数据?

  •  0
  • Joseph Adam  · 技术社区  · 2 年前

    使用下面的代码,我能够根据 id ,如何更新此代码,以便根据文件名检索数据?

    我的URL是

    urlpatterns = [
        path("items/<pk>", SingleUploadItem.as_view()),
    ]
    

    我的观点是:

    class SingleUploadItem(RetrieveAPIView):
    
        queryset = fileUpload.objects.all()
        serializer_class = fileUploadSerializer
    

    我的型号是

    class fileUpload(models.Model):
        fileName = models.CharField(max_length=200, unique=True, blank=True)
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Metalgear    2 年前

    首先,在URL中。py公司

    urlpatterns = [
        path("items/<str:file_name>", SingleUploadItem.as_view()),
    ]
    

    和视图中。py,

    from rest_framework import status
    from .models import fileUpload
    from .serializers import FileUploadSerializer
    
    class SingleUploadItem(RetrieveAPIView):
    
        queryset = fileUpload.objects.all()
        serializer_class = fileUploadSerializer
    
        def get(self, request, file_name):
            try:
                fileupload_obj = fileUpload.objects.get(fileName = file_name)
                return Response(FileUploadSerializer(fileupload_obj).data)
            except fileUpload.DoesNotExist:
                return Response(status = status.HTTP_400_BAD_REQUEST)
    

    希望能有所帮助。