Python 如何在DRF中更新配置文件pic
我已经创建了一个api,在这里可以上传个人资料的图片以及其他细节。我的问题是,如果一个人想改变图片,如何才能做到。 目前,我第一次能够保存图片 型号.pyPython 如何在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
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将允许您更新配置文件实例的某些字段,而不是所有字段。