我试图在视图中使用请求方法将值返回到模板。这些值在列表中。当我尝试访问这些值时,我得到了索引错误列表。但是,当我将这些值打印到cmd时,这些值是正确的。
错误
IndexError at /
list index out of range
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.11.20
Exception Type: IndexError
Exception Value: list index out of range
Python Version: 2.7.15
views.py文件
def index(request):
req_val = [None]
demo_text =[]
if request.method == 'POST':
req_val.append(request.POST.get('val1'))
req_val.append(request.POST.get('val2'))
req_val.append(request.POST.get('val3'))
demo_text = package_name.classobj(req_val[0],req_val[1],req_val[2]).methodprintval()
print demo_text #sample output: [1,2,3]
return render(request, 'index.html',{'sampleval1':demo_text[0],'sampleval2':demo_text[1],'sampleval3':demo_text[2]}) #error list index out of range
我试图找到解决方法,但是没有。我该怎么解决?
谢谢
答案 0 :(得分:0)
当直接在上下文中传递值时,为什么要承担额外的开销。我不确定 methodprintval 会做什么。
dict(zip([f'sampleval{i}' for i in range(1,4)],req_val))
这将自行生成上下文变量
{'sampleval1': 1, 'sampleval2': 2, 'sampleval3': 3}
答案 1 :(得分:0)
Request Method: GET
if request.method == 'POST':
获取方法时,您的列表为空。