Как использовать REST API в Wagtail CMS - PullRequest
1 голос
/ 29 февраля 2020

Я хотел бы вызвать внешний REST API в Wagtail CMS. Предположим, URL-адрес:

http://dummy.restapiexample.com/api/v1/employees

Я пытался подписаться на пост Django, который делал почти то же самое. См .: Правильный способ использования данных из RESTFUL API в django

Я создал services.py:

//services.py

import requests

def get_employees(page, request):
    url = 'http://dummy.restapiexample.com/api/v1/employees' 
    r = requests.get(url)
    employees = r.json()
    return employees

Я добавил следующее в models.py:

from . import services as services

class HomePage(RoutablePageMixin, Page):

    @route(r'^employees/$')
    def employees_page(self,request):
        employees = services.get_employees(self, request)
        return render(request,'home/employees.html',employees)

Когда я запускаю это, я получаю следующую ошибку:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Вот трассировка стека:

  File "/data/swag/home/models.py", line 53, in employees_page
    employees = services.get_employees(self, request)
  File "/data/swag/home/services.py", line 13, in get_employees
    employees = r.json()
  File "/home/user1/anaconda3/envs/wadmin/lib/python3.7/site-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/home/user1/anaconda3/envs/wadmin/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/home/user1/anaconda3/envs/wadmin/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/home/user1/anaconda3/envs/wadmin/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Кажется, код Django делает не работает в трясогузке и нуждается в адаптации. Я провел несколько часов в поисках аналога, но безуспешно. Очень ценю любую помощь.

...