Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中追加到request.sessions[list]_Python_Django - Fatal编程技术网

Python 在Django中追加到request.sessions[list]

Python 在Django中追加到request.sessions[list],python,django,Python,Django,有什么事困扰着我。 下面是django(cs50)的入门教程,我们从表单提交中收到一个字符串,希望将其添加到列表中: 我已经检查了request.session['tasklist']的类型,python显示它是一个列表。 task变量是一个字符串 那么为什么request.session['tasklist'].append(task)不能正常工作呢?我可以看到它通过一些打印语句被添加到列表中,但是它“又被遗忘了”——它似乎没有被永久添加到任务列表中 为什么我们要使用这个请求。会话['tas

有什么事困扰着我。 下面是django(cs50)的入门教程,我们从表单提交中收到一个字符串,希望将其添加到列表中:

我已经检查了
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'))