Установить кэш в 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 (первый раз, когда я получаю данные для установки кэша, второй раз, когда я получаю данные о запасах)?

Спасибо

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