我正試圖將initial
(es_initial
)數據提供給我的formset
,其中initial
是字典列表。我view.py有下面的代碼:無法正確修改字典列表
# get all answers by current student
es_answers_by_student = models.Answer.objects.filter(
student__user=request.user
).filter(
question__quiz=step
).filter(
eq_answer_text__icontains=''
)
# supply question prompt to the initial data
for es_question in eqs:
es_dict_for_initial.update({'question': es_question.prompt},)
es_initial.append(es_dict_for_initial.copy())
# supply saved answers
for answer in es_answers_by_student:
for _dict in es_initial:
_dict["eq_answer"] = answer.eq_answer_text
print(es_initial)
搞不明白,爲什麼我最後for
循環總是返回這是es_answers_by_student
查詢集
編輯的最後一個值相同的值:
執行後第一個for
環,es_initial
看起來像:
[{'question': 'question text 1'}, {'question': 'question text 2'}]
這裏是我想要的第二for
循環後完成的任務:
[{'question': 'question text 1', 'eq_answer': 'answer text 1'},
{'question': 'question text 2', 'eq_answer': 'answer text 2'}]
它的預期:你在'answer'循環,你的內循環指定相同的字典數據,而不依賴於'answer'。你想實現什麼? –
你能提供[最小,完整和可驗證的例子](http://stackoverflow.com/help/mcve)嗎?你最後一個'for'循環將'es_answers_by_student'列表(?)中的最後一個值寫入'es_initial'列表中的每個字典,但是你期望/希望它做什麼? –
你最好展示它看起來像現在所有循環後的樣子 – Jacobian