У меня есть два словаря с несколькими ключами и одним значением для каждого ключа. Один диктат имеет еженедельные кумулятивные часы работы, другой еженедельные кумулятивные часы сверхурочных. Ключ - это объект даты и времени, который рассчитывается как начало недели. На моей веб-странице есть выпадающий список, который содержит начало недели
<form action="{{ url_for('index') }}" method="post">
<select class="form-control" name="cumuls" id="select1" onchange="if(this.value != 0) { this.form.submit(); }">
<option value="0">Cumulative for week beginning...</option>
{% for i,j in zip(wks, wks2) %}
<option value="{{ i }}">{{ j }}</option>
{% endfor %}
</select>
</form>
(wks2
- это просто отлично отформатированная версия wks
, а wks
- это просто список ключей из dicts, которые являются объектами даты и времени (словари имеют одинаковые ключи))
Я хочу иметь возможность щелкнуть параметр в раскрывающемся списке, чтобы соответствующие значения из двух словарей отображались под раскрывающимся списком.
Я обрабатываю форму здесь (в функции index()
), после того, как if является концом индексной функции:
if request.method == 'POST':
if 'cumuls' in request.form:
week_Begin = request.form['cumuls']
listHours = listDates(current_user.get_id())
dct_hours, dct_overtime, wks = weeklySum2(listHours)
#strfdelta is a custom function that formats timedeltas
cumul_hrs = strfdelta(dct_hours[datetime.fromisoformat(week_Begin)], '%H:%M')
cumul_overtime = strfdelta(dct_overtime[datetime.fromisoformat(week_Begin)], '%H:%M')
return redirect(url_for('index'))
listHours = listDates(current_user.get_id())
dct_hours, dct_overtime, wks = weeklySum2(listHours)
print(wks)
# wkbgn = weekbeginning, this just formats the dates nicely
wks2 = [wkbgn.strftime('%A') + ' ' + wkbgn.strftime('%-d') + ' ' + wkbgn.strftime('%b') + ' ' + wkbgn.strftime('%Y') for wkbgn in wks]
currentDay = datetime.today()
start_week = (currentDay - timedelta(days=currentDay.weekday()))
return render_template('index.html', form=form, hoursDb = listHours, dct_overtime=dct_overtime,dct_hours=dct_hours, wks=wks, wks2=wks2, zip=zip)
Таким образом, в пределах if 'cumuls'...
я в основном получаю совокупные рабочие и сверхурочные часы для выбранной недели, в cumul_hrs
и cumul_overtime
, что работает. По сути, я хочу, чтобы эти переменные отображались на веб-странице (под раскрывающимся списком), и отображаемая переменная по умолчанию будет накапливать текущие недели. Как я мог это сделать?
Любые указатели / советы приветствуются.