Python 在Django中追加到request.sessions[list]
有什么事困扰着我。 下面是django(cs50)的入门教程,我们从表单提交中收到一个字符串,希望将其添加到列表中: 我已经检查了Python 在Django中追加到request.sessions[list],python,django,Python,Django,有什么事困扰着我。 下面是django(cs50)的入门教程,我们从表单提交中收到一个字符串,希望将其添加到列表中: 我已经检查了request.session['tasklist']的类型,python显示它是一个列表。 task变量是一个字符串 那么为什么request.session['tasklist'].append(task)不能正常工作呢?我可以看到它通过一些打印语句被添加到列表中,但是它“又被遗忘了”——它似乎没有被永久添加到任务列表中 为什么我们要使用这个请求。会话['tas
request.session['tasklist']
的类型,python显示它是一个列表。
task
变量是一个字符串
那么为什么request.session['tasklist'].append(task)
不能正常工作呢?我可以看到它通过一些打印语句被添加到列表中,但是它“又被遗忘了”——它似乎没有被永久添加到任务列表中
为什么我们要使用这个请求。会话['tasklist']+=[task]
我能找到的唯一东西是指一个不再存在的网站
代码运行良好,但我试图理解为什么需要使用不同的操作,而不能/不应该使用append方法
谢谢。我在进行更多搜索时发现: 滚动至“在会话中附加到列表不起作用” 同样,这是一个非常过时的条目,但似乎仍然成立 不完全满意,因为这并不能回答“为什么”这不起作用的问题,但至少可以确认“出现了问题”,您可能仍然应该使用那里的建议 (如果有人能更详细地解释这一点,我很乐意听到)
def add(request):
if 'tasklist' not in request.session:
request.session['tasklist'] = []
if request.method == 'POST':
form_data = NewTaskForm(request.POST)
if form_data.is_valid():
task = form_data.cleaned_data['task']
request.session['tasklist'] += [task]
return HttpResponseRedirect(reverse('tasks:index'))