Я хочу создать сайт, на котором люди могли бы составлять списки товаров для продажи.Я хочу, чтобы на главной странице всегда отображались самые популярные (горячие) элементы.
Популярность уменьшается со временем и увеличивается с активностью (ставки, комментарии, клики).Каждый элемент начинается с популярности 100.
Таким образом, неинтересные элементы быстро исчезают, а интересные остаются дольше.
Таким образом, каждый раз, когда пользователь взаимодействует с объектами, его популярность должна увеличиваться (например, каждый раз, когда запрос get отуникальный пользователь сделан для деталей объекта, его значение популярности увеличивается на 1, каждая ставка увеличивает его на 10).
С другой стороны, каждый раз, когда проходит около минуты, популярность всех активных в настоящее время предметов уменьшается.Как только он достигнет 0, он будет «деактивирован», он все равно будет доступен для продажи, но он никогда не попадет на первую страницу.
Проблема в том, как уменьшить популярность набора запросов всех активных элементов?
Я понимаю, что каждый раз, когда пользователь запрашивает первую страницу.Я мог бы просто извлечь все активные объекты, вычислить популярность в коде Python и отсортировать их вручную, но это выглядит довольно бесполезно.
Я знаю, что могу легко установить свойство всего набора запросов, используя функцию обновления, но этопринимает только одно абсолютное значение для всего набора.Есть ли встроенный способ просто уменьшить свойство на единицу?
Или мне просто нужно перебрать набор запросов и уменьшить каждое значение вручную?