Как правильно обновить статус заказа до «выполнено» с помощью API woocommerce в Django - PullRequest
0 голосов
/ 07 мая 2019

Я сталкиваюсь с проблемой изменения статуса заказа с «ожидающий» на «выполненный».Первоначальный статус «в ожидании».

Процесс должен быть выполнен пользователем, использующим форму (модель django)

Я думаю, что логическая ошибка возникает, когда я пытаюсь пройтиизвлеченные данные из моего приложения (из моей базы данных) обратно в API woocommerce.

Вот мой код:

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?

1 Ответ

1 голос
/ 07 мая 2019

Структура моего URL была неправильной. Я должен построить запрос следующим образом:

wcapi.put("orders/"+str(current_order.oid), data)
...