Django app: можно ли использовать `for loop` вне функции в views.py?

Я знаю, что в views.py я могу создать объект - например, словарь - который может быть использован в определенной функции. Например (views.py):

# here `monthly_challenges` is working
monthly_challenges = {
    "january": "Eat no meat for the entire month!",
    "february": "Walk for at least 20 minutes every day!",
    "march": "Learn Django for at least 20 minutes every day!",
    "april": "Eat no meat for the entire month!",
    "may": "Walk for at least 20 minutes every day!",
    "june": "Learn Django for at least 20 minutes every day!",
    "july": "Eat no meat for the entire month!",
    "august": "Walk for at least 20 minutes every day!",
    "september": "Learn Django for at least 20 minutes every day!",
    "october": "Eat no meat for the entire month!",
    "november": "Walk for at least 20 minutes every day!",
    "december": None
}

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

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

Но возможно ли заполнить шаблон объектом словаря, заполненным оператором for loop вне функции в views.py?

Я безуспешно пытался использовать код ниже (views.py):


# here `monthly_challenges` is not working
monthly_challenges = {}
keys = range(1000000)
values = range(1, 2000000, 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
    })

ошибка вывода:

enter image description here

Если это неправильный подход из-за разделения забот - я не уверен, что это так. Как это решить?

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