【问题标题】:Does request.session["name"] in Django creates a new list?Django 中的 request.session["name"] 会创建一个新列表吗?
【发布时间】:2020-08-26 14:40:04
【问题描述】:

当我们写 request.session["tasks"] 并将其分配给 django 视图中的某些东西时,这意味着什么?就像下面的索引函数request.session["tasks"] = [ ] 中的脚本一样,这是否意味着已经为该特定会话创建了一个名为tasks 的空列表?如果是这样,所有这些会话详细信息都存储在 django 中的什么位置?还有add函数中的cleaned_data["task"]在这个脚本中到底做了什么?我尝试查看文档,但找不到任何令人满意的信息,所以如果这听起来有点愚蠢,我很抱歉,但我是 django 的新手,有时语法真的让我感到困惑,感谢任何帮助!

from django.shortcuts import render
from django import forms
from django.http import HttpResponseRedirect
from django.urls import reverse 
# Create your views here.

class NewTaskForm(forms.Form):
    task = forms.CharField(label = "New Task",min_length=8,max_length=16)
    priority = forms.IntegerField(label="Priority",min_value=1,max_value=5)



def index(request):
    if "tasks" not in request.session:
        request.session["tasks"] = []
    return render(request,"index.html",
    {
        "tasks":request.session["tasks"]
    })

def add(request):
    if request.method == "POST":
        vari = NewTaskForm(request.POST)
        if vari.is_valid():
            task = vari.cleaned_data["task"]
            request.session["tasks"] += [task]
            return HttpResponseRedirect(reverse("index"))
        else:
            return render(request,"other.html",
            {
                "form":vari
            })

    return render(request,"other.html",{
        "form" : NewTaskForm()
    }) 

【问题讨论】:

    标签: python django session-cookies django-sessions


    【解决方案1】:
    Yes, It means an empty list named tasks has been created for that particular session. and django stores the session data in 'django_session' table. 
    
    
    cleaned_data is used for validating the data.
    
    # This line is used to pass the validated data from the form input.
    task = vari.cleaned_data["task"]
    

    【讨论】:

    • 好的,但我尝试像这样request.session["tasks"].append([task]) 调用 append 方法,但它不起作用你能告诉我怎么做吗?
    猜你喜欢
    • 2011-02-15
    • 2016-11-22
    • 2020-11-05
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2011-07-07
    相关资源
    最近更新 更多