Я хотел бы вызвать внешний 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 делает не работает в трясогузке и нуждается в адаптации. Я провел несколько часов в поисках аналога, но безуспешно. Очень ценю любую помощь.