【发布时间】:2019-06-20 07:43:27
【问题描述】:
我想在 Django Oscar 中的“产品交付”功能之后添加“退货”。在settings.py 我添加了下面的代码。
OSCAR_ORDER_STATUS_PIPELINE = {
'Pending': ('Processing', 'Cancelled',),
'Processing': ('Shipped', 'Cancelled',),
'Shipped': ('Delivered', 'Return', 'Returned', 'Cancelled',),
'Returned': ('Return', 'Returned',),
'Delivered': (),
'Cancelled': (),
}
OSCAR_ORDER_STATUS_CASCADE = {
'Processing': 'In progress',
'Shipped': 'Shipped',
'Delivered': 'Delivered',
'Returned': 'Returned',
'Cancelled': 'Cancelled'
}
我已经编写了 Ajax 函数来更改订单从“已交付”到“退货”后的状态。下面是函数。
@csrf_exempt
def return_order(request):
# Return Order after Delivery
if request.is_ajax():
data = request.body.decode('utf-8')
try:
order = Order.objects.get(id=int(data))
EventHandler().handle_order_status_change(order=order, new_status='Return')
return HttpResponse(json.dumps({'status': 'True', 'msg': 'OK'}))
except Exception as e:
print(e)
return HttpResponse(json.dumps({'status': 'False', 'msg': 'Error'}))
我收到类似这样的错误
'Return' is not a valid status for order 100213 (current status: 'Delivered')
【问题讨论】:
标签: django django-views django-oscar