Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在DRF中更新配置文件pic_Python_Django_Django Rest Framework - Fatal编程技术网

Python 如何在DRF中更新配置文件pic

Python 如何在DRF中更新配置文件pic,python,django,django-rest-framework,Python,Django,Django Rest Framework,我已经创建了一个api,在这里可以上传个人资料的图片以及其他细节。我的问题是,如果一个人想改变图片,如何才能做到。 目前,我第一次能够保存图片 型号.py class Profile(models.Model): User = get_user_model() branch = models.CharField(max_length=20, null=True) year = models.IntegerField(null=True) image = model

我已经创建了一个api,在这里可以上传个人资料的图片以及其他细节。我的问题是,如果一个人想改变图片,如何才能做到。 目前,我第一次能够保存图片

型号.py

class Profile(models.Model):
    User = get_user_model()
    branch = models.CharField(max_length=20, null=True)
    year = models.IntegerField(null=True)
    image = models.ImageField(upload_to="accounts/images/", null=True, blank=True)
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        primary_key=False,
        null=True
    )
class ProfileView(APIView):

    permission_classes = (IsAuthenticated,)
    serializer_class = ProfileSerializer
    queryset = Profile.objects.all()

    def post(self, request, format=None):
        current_user = request.user
        param = request.data
        profile = Profile.objects.filter(user=current_user.pk)
        if profile:
            serializer = ProfileSerializer(profile, many=True)
            return Response(serializer.data)
        else:
            serializer = ProfileSerializer(data=param)
            if serializer.is_valid(raise_exception=True):
                serializer.save(user=current_user)
                new_data = serializer.data
                return Response(new_data)
            return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
视图.py

class Profile(models.Model):
    User = get_user_model()
    branch = models.CharField(max_length=20, null=True)
    year = models.IntegerField(null=True)
    image = models.ImageField(upload_to="accounts/images/", null=True, blank=True)
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        primary_key=False,
        null=True
    )
class ProfileView(APIView):

    permission_classes = (IsAuthenticated,)
    serializer_class = ProfileSerializer
    queryset = Profile.objects.all()

    def post(self, request, format=None):
        current_user = request.user
        param = request.data
        profile = Profile.objects.filter(user=current_user.pk)
        if profile:
            serializer = ProfileSerializer(profile, many=True)
            return Response(serializer.data)
        else:
            serializer = ProfileSerializer(data=param)
            if serializer.is_valid(raise_exception=True):
                serializer.save(user=current_user)
                new_data = serializer.data
                return Response(new_data)
            return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
或者直接使用:

或者直接使用:


谢谢我想知道的另一件事是,如何从被替换的文件夹中删除pic。另外,使用
partial=True
参数会发生什么情况?partial=True将允许您更新配置文件实例的某些字段,而不是所有字段。谢谢!。我想知道的另一件事是如何从被替换的文件夹中删除pic。另外,使用
partial=True
参数会发生什么?partial=True将允许您更新配置文件实例的某些字段,而不是所有字段。