0

request.session["tasks"]当我们在 django 视图中编写并将其分配给某些东西时,这意味着什么?就像下面索引函数中的脚本一样request.session["tasks"] = [ ],这是否意味着tasks已为该特定会话创建了一个名为的空列表?如果是这样,所有这些会话详细信息都存储在 django 中的什么位置?以及这个脚本cleaned_data["task"]中函数的add作用是什么?我尝试查看文档,但找不到任何令人满意的信息,所以如果这听起来有点愚蠢,我很抱歉,但我是 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()
    }) 
4

1 回答 1

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"]
于 2020-05-11T07:24:12.770 回答