@detail_route:对象没有属性 - Django Rest Framework



我遇到了一个关于@detail_route的问题。希望你们对你们有帮助!

这是我的观点集。我使用装饰器导入detail_route

我的观点集:

class PhotoUpdateSerializer(ModelSerializer):
    class Meta:
        model = Photo
        fields = [
            'image',
            'is_public',
            'caption'
        ]
class UploadAvatarPhotoAPIView(ReadOnlyModelViewSet):
    serializer_class = PhotoUpdateSerializer
    queryset = Photo.objects.all()
    @detail_route(methods=['POST'])
    def upload_avatar(self, request, username):
        avatarqs = Photo.objects.create(
            user=self.request.user,
            caption=self.caption,
            image=self.image,
            is_public=self.is_public
        )
        serializer = PhotoUpdateSerializer(avatarqs)
        return Response(serializer.data)

错误:'UploadAvatarPhotoAPIView' object has no attribute 'caption'

我认为 3 行是错误的:

caption=self.caption,
image=self.image,
is_public=self.is_public

您需要request.POST来获取数据。

caption = request.POST['caption']
is_public = request.POST['is_public']

和图像数据

image=request.FILES.get('image')

更新

您需要在表单标签中设置enctypemultipart/form-data,以便在上传文件时获取request.FILES中的数据。

<form action="" method="post" enctype="multipart/form-data">

最新更新