【发布时间】:2020-11-12 09:40:13
【问题描述】:
我对 django 如何将元素添加到列表感到困惑。考虑以下几点:
def add(request):
if request.method == "POST":
form = NewTaskForm(request.POST)
if form.is_valid():
task = form.cleaned_data["task"]
request.session['tasks'].append(task)
# request.session['tasks'] += [task]
return HttpResponseRedirect(reverse("tasks:index"))
else:
return render(request, "tasks/add.html",{
"form": form
})
return render(request, "tasks/add.html",{
"form": NewTaskForm()
})
如果我们在 request.session['tasks'].append(task) 之后添加一个打印语句,我们会得到一个列表:
['check email']
如果我们注释附加行并使用 += 的正确方式,我们也会得到相同的列表
但是,在重定向到任务/索引时,第一种方式显示一个空列表,第二种方式显示预期的列表。为什么?怎么回事?
【问题讨论】:
-
会话['tasks'] 在哪里/如何定义?
-
不错,少了一行。