Невозможно использовать значение из словаря в одном представлении Django в другом представлении Django (AttributeError: модуль 'urllib.request' не имеет атрибута 'session')
Я новичок в использовании Django. У меня есть функция в views.py, которая вычисляет прибыль и печатает ее на веб-странице в Django. Я храню прибыль в словаре по имени context
, а затем сохраняю ее в сессии:
#We want to calculate hourly profit
def profitmanagement(request):
#Profit has already been computed
context={'TotalHourlyProfit':TotalProfit}
#We will pass this dictionary to our ProfitManagement.html template. This will display our total profit.
request.session['context'] = context #Save the dictionary using a session to use in another function
return render(request,"ProfitManagement.html",context)
Теперь у меня есть другая функция, которая будет запускаться каждый час с помощью APScheduler. Она должна установить TotalHourlyProfit
в ноль, а затем вывести его на веб-страницу. Она выглядит следующим образом:
#Sets the hourly profit to zero at each hour
def ClearHourlyProfit():
context = request.session.get('context') #Loads the dictionary computed in profitmanagement(). This is returning an error
context['TotalHourlyProfit']=0 #Set the hourly profit to zero.
#print("Hourly profit function has context:",context)
return render(request,"ProfitManagement.html",context)
Возвращается ошибка:
AttributeError: module 'urllib.request' has no attribute 'session'
Есть ли способ, с помощью которого я могу передать измененное значение TotalHourlyProfit
на мою веб-страницу? Я буду очень благодарен любому, кто укажет мне правильное направление.
Заранее спасибо!
Вам необходимо передать request
в качестве аргумента в функции ClearHourlyProfit()
, так как это функция представления, а также использовать {}
пустой дикт, если context
не существует, так:
def ClearHourlyProfit(request):
context = request.session.get('context', {})
context['TotalHourlyProfit']=0
request.session['context'] = context
return render(request,"ProfitManagement.html",context)