更新订单表状态数据
点击修改状态,完成订单表状态的修改操作
接口分析
请求方式: PUT /meiduo_admin/orders/(?P\d+)/status/
请求参数: 通过请求头传递jwt token数据。
参数类型是否必须说明statusstr是订单状态返回数据: JSON
{
"order_id": "20181126102807000000004",
"status": 1
}
参数类型是否必须说明order_idstr是d订单idstatusint是订单状态
后端实现
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.orders import OrderSeriazlier
from orders.models import OrderInfo
from meiduo_admin.utils import UserPageNum
from rest_framework.decorators import action
from rest_framework.response import Response
class OrdersView(ModelViewSet):
serializer_class = OrderSeriazlier
queryset = OrderInfo.objects.all()
pagination_class = UserPageNum
# 在视图中定义status方法修改订单状态
@action(methods=['put'], detail=True)
def status(self, request, pk):
# 获取订单对象
order = self.get_object()
# 获取要修改的状态值
status = request.data.get('status')
if status is None:
return Response({'error': '缺少状态值'})
# 修改订单状态
order.status = status
order.save()
# 返回结果
ser = self.get_serializer(order)
return Response({
'order_id': order.order_id,
'status': status
})