python - 我如何使用 img_id 在 post 方法中发送图像模型中的数据来编辑图像
问题描述
- 如何使用 post 方法编辑图像
- post 方法而不是 put 方法
- 以表单数据而不是 url 发送 pk
- 整体看起来比较复杂的方法
解决方案
问题的完整指南
models.py
class UploadImage(models.Model):
img_id = models.AutoField(primary_key=True)
user_id = models.ForeignKey(User, related_name='img', on_delete=models.CASCADE)
image = models.ImageField(upload_to='images/')
like_choice =[
('0','0'),
('1','1')
]
is_liked = models.CharField(max_length=255, choices = like_choice, default='0')
def __str__(self):
return str(self.image)
serializers.py
class EditImageSerializer(serializers.ModelSerializer):
class Meta:
model = UploadImage
fields = ['img_id','user_id','image','is_liked']
views.py
class EditImageAPIView(APIView):
serializer_class = EditImageSerializer
def post(self, request):
img_id = request.data.get('img_id')
editobj = UploadImage.objects.get(img_id=img_id)
serializer = EditImageSerializer(editobj, data=request.data, context={'request': request})
if serializer.is_valid():
serializer.save()
return Response({
'status' : True,
'message' : 'Image Edited Successfully',
'data' : serializer.data
},status=status.HTTP_200_OK)
return Response({
'status' : 'False',
'message' : 'Error! Image with this id does not exist!'
}, status = status.HTTP_400_BAD_REQUEST)
urls.py
url(r'^edit_image', EditImageAPIView.as_view(), name='edit image without pk'),
推荐阅读
- android - 在 Monkey 工具中检查应用程序启动的时间延迟
- eclipse-rcp - 如何通过选择非焦点部分中的按钮来刷新 2 个部分堆栈中的数据
- java - 在指定名字和/或姓氏时查询以获取所有客户
- swift - iOS 14 小部件:使用列表时小部件不呈现
- javascript - 使用对象值循环数字并将输出推送到数组
- c++ - 为什么要调用基类的赋值运算符?
- mysql - mySql 上的全局 event_scheduler 问题
- amcharts - amCharts 4:是否可以按总计对堆积柱形图的类别进行排序
- python - 使用 Python 在一个简单的隔离林示例中绘制异常
- java - 可执行 Jar 文件无法读取内部 JSON 文件