我面临着将订单状态从“待处理”更改为“已完成”的问题。初始状态为“待处理”。
该过程必须由用户使用表单(django的模型表单)完成
我认为,当我尝试将从我的应用程序(从数据库)获取的数据传递回woocommerce api时,会引发逻辑错误。
这是我的代码:
def form_valid(self, form, **kwargs):
order = form.save(commit=False)
current_order = Woo_Orders.objects.get(id=self.kwargs['pk'])
current_order.status=order.status
eshop=current_order.eshop
current_order.save()
if current_order.status == "completed" :
wcapi = API(
url=eshop.url,
consumer_key=eshop.consumer_key,
consumer_secret=eshop.consumer_secret,
wp_api=True,
version="wc/v2",
query_string_auth=True,
verify_ssl = True,
timeout=10
)
data = {
"status": "completed"
}
wcapi.put("orders/current_order.oid", data)
print(wcapi.put("orders/current_order.oid", data).json())
return super(Woo_OrderUpdateView, self).form_valid(form)
我打印的json是:
{u'message': u'\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03b4\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae \u03c0\u03bf\u03c5 \u03bd\u03b1 \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5\xa0 \u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03ba\u03b1\u03b9 \u03c4\u03b7 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2', u'code': u'rest_no_route', u'data': {u'status': 404}}
为什么状态为404?
答案 0 :(得分:1)
我的网址结构错误。我必须按以下方式构建请求:
wcapi.put("orders/"+str(current_order.oid), data)