Где хранить словарь в Django

У меня есть словарь, который я получаю из API местной компании доставки. Я хочу использовать его в своем приложении для заполнения поля выбора города. Я не хочу получать эти данные каждый раз, когда пользователь загружает страницу. Поэтому мне нужно хранить их где-то и обновлять раз в день. Какой лучший способ сделать это с помощью Django?

url = 'https://api.novaposhta.ua/v2.0/json/'
data = {
    "apiKey": "apiKey",
    "modelName": "Address",
    "calledMethod": "getCities",
    "methodProperties": {}
}
city_list_json = requests.post(url, json=data).text
city_dict = {d['Ref']: d['Description'] for d in json.loads(city_list_json)['data']}

Обычная модель Django без поля JSON могла бы прекрасно справиться с этим. Это также даст вам запись информации за предыдущие дни. Ваша бизнес-логика диктует, как часто обращаться к API. Ваши варианты могут быть следующими:

  1. Установите фоновую задачу для получения данных API раз в день в полночь (или когда угодно); или
  2. .
  3. В вашей модели есть поле 'last_updated', которое проверяется при каждом запросе, если прошло >24 часа, то запрос вызывает вызов API
  4. .

Вариант 2 проще в реализации, но его недостатком является то, что если вызов API медленный, то тот, кто делает этот запрос, будет ждать, пока страница загрузится

Вернуться на верх