Нужно создать session в django c разными значениями ключей в через нажатие одной кнопки
У меня задача
Получить от посетителя название актива и его период.
С этим проблем нет. Затем нужно эти полученные данные где-то хранить? Раз у меня все пользователи анонимные, то буду хранить данные в session. Так как session - это тип данные схожий со словарем, мне нужно создавать разные ключи, для каждого набора полученных данных например:
dict_items([('1', ['FXUS', '2022-02-03', '2022-02-20']), ('2', ['FXUS', '2022-02-02', '2022-02-20'])
Имея разные названия ключей в словаре, я смогу управлять данными, а если они будут в формате:
dict_items = {'session_data': ['FXUS', '2022-01-01', '2022-01-15', 'FXRL', '2022-01-05', '2022-01-17']}
Мне будет не удобно
Для того что иметь удобный мне формат, нужно создавать ключи с разным названием, я решил, что самый удачный вариант - это сделать счетчик нажатий посетителем на кнопку, как раз число нажатий и будет оригинальным названием ключа в словаре, но меня не выходит это реализовать, не понимаю почему.
Код шаблона:
<form method="post">
{% csrf_token %}
<select name="selected_asset">
<option selected="selected">Активы</option>
{% for asset in assets %}
<option> {{ asset.name }}</option>
{% endfor %}
</select>
<p>
От: <input type="date" name="start_date" >
</p>
<p>
До: <input type="date" name="end_date" >
</p>
<input type="submit" value="Добавить">
</form>
Код Views
kol = 0
def post(self, request, *args, **kwargs):
assets = Assets.objects.all()
global kol
if request.method == 'POST':
selected_asset = request.POST['selected_asset'] # получаем указанный актив
start_date = request.POST['start_date'] # получаем указанную дату
end_date = request.POST['end_date'] # получаем указанную дату
kol += 1
request.session[kol] = [selected_asset]
request.session[kol].append(start_date)
request.session[kol].append(end_date)
Выдает ошибку
Если переменная исспользуется в шаблоне (kol в данном случае), она должна быть добавлена в возврат функции вида (view). Но в данном случае, полагаю, это не поможет, так как переменная должна меняться, значит её нужно поместить либо в сессию, либо в куки, либо в жабу.
