Приложение django: разделение проблем и оптимизация больших объектов, генерируемых с помощью циклов for/понимания словарей

Когда в проекте Django нужно сгенерировать массивный объект, который будет использоваться для заполнения шаблона template, где он должен генерироваться/храниться? Если - в примере (размещенном ниже) - я заполняю шаблон объектом dictionary, который заполняется оператором цикла for (вне функции, в views.py), то это заставит сервер генерировать этот объект в процессе запуска своей работы. Другими словами, когда я генерирую объект в views.py вне функции, запуск сервера занимает много времени (объект большой).


monthly_challenges = {}
keys = range(1000)
values = range(1, 2000, 2)
for i in keys:
    for x in values:
        monthly_challenges[i] = x

def index(request):
    months = list(monthly_challenges.keys())

    return render(request, "challenges/index.html", {
        "months": months
    })

Является ли указанный подход лучшим способом?

Имея в виду идею separation of concerns, я хотел бы знать, как и где разумнее всего генерировать объект с содержимым большого размера. Как я могу оптимизировать производительность в этом случае?

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