Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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 访问请求时出错。窗体内的会话['key']。[使用复选框选择多个]_Python_Django_Django Forms_Django Views_Django Request - Fatal编程技术网

Python 访问请求时出错。窗体内的会话['key']。[使用复选框选择多个]

Python 访问请求时出错。窗体内的会话['key']。[使用复选框选择多个],python,django,django-forms,django-views,django-request,Python,Django,Django Forms,Django Views,Django Request,我有两种形式,分别是GoodAtForm和paidform。它们的作用如下 GoodAtForm从request.session['love']中的列表中获取输入并将其呈现给用户 然后,用户将看到一个复选框SelectMultiple fields,以便用户可以选择 在视图中提交表单后,用户选择将存储在另一个列表请求中 4.另一个名为PaidForForm的表单使用该列表使用CheckBocSelectMultiple进一步询问用户的问题,这些选择来自列表``request.session['g

我有两种形式,分别是GoodAtForm和paidform。它们的作用如下

GoodAtForm从request.session['love']中的列表中获取输入并将其呈现给用户

然后,用户将看到一个复选框SelectMultiple fields,以便用户可以选择

在视图中提交表单后,用户选择将存储在另一个列表请求中

4.另一个名为PaidForForm的表单使用该列表使用CheckBocSelectMultiple进一步询问用户的问题,这些选择来自列表``request.session['good']

我的问题是,我无法访问表单中的输出数据以供查看

初始化时输入工作正常。“我的表单”会呈现给定爱情列表中的复选框,但问题是表单没有提供输出。上面说

 form = GoodAtForm(request.POST)
 input_list = request.session['love']
'QueryDict' object has no attribute 'session'

这是我的名片

查看GoodAtForm


通常,传递给Django表单的第一个位置参数是请求数据,您已经将request定义为表单类的第一个参数,但正在视图中传递request.POST

您需要在每次实例化表单时将request作为第一个参数传递

form = GoodForm(request, request.POST)
或者将请求更改为关键字参数

class GoodAtForm(forms.Form):
    def __init__(self, *args, request=None, **kwargs):
        super().__init__(*args, **kwargs)
        ...

form = GoodForm(request.POST, request=request)

谢谢你,老兄!我把两者混合在一起。代码流畅如水
form = GoodForm(request, request.POST)
class GoodAtForm(forms.Form):
    def __init__(self, *args, request=None, **kwargs):
        super().__init__(*args, **kwargs)
        ...

form = GoodForm(request.POST, request=request)