Установить кэш в Django, но данные должны динамически
У меня проблема, я хочу сохранить данные в кэш, чтобы когда мне нужно получить данные, мне не нужно получать их из базы данных. Но есть данные, которые я должен получить из базы данных независимо от того, что это акции.
Иллюстрация, которую мне нужно сохранить в кэш из базы данных:
ProductDetails:{ 'product_name': ...., 'categories':...., и т.д. }
но товар на складе, который мне нужно получить, находится в той же самой базе данных, я пытаюсь использовать множественный цикл следующим образом:
'''
products = queryset()
cache_key =f'test_detail_{parameter}'
information = {}
details = []
if not cache.get(cache_key):
for product in products:
information[product_id] = {
'product_name': product.name,
'date_input': product.date,
'weight':product.weight
}
cache.set(cache_key, information, duration)
information = cache.get(cache_key)
for key, value in information.items():
information[key][stock] = numpy.sum([x.stock for x in products if key == x.id ])
details.append(information[key])
return details
'''
есть ли какой-нибудь метод более эффективный и действенный, использующий только 1 Queryset, потому что я использую 2 Queryset (первый раз, когда я получаю данные для установки кэша, второй раз, когда я получаю данные о запасах)?
Спасибо