Django在返回值时显示列表不符合索引

时间:2019-05-08 10:46:57

标签: python django list

我试图在视图中使用请求方法将值返回到模板。这些值在列表中。当我尝试访问这些值时,我得到了索引错误列表。但是,当我将这些值打印到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

我试图找到解决方法,但是没有。我该怎么解决?

谢谢

2 个答案:

答案 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':

获取方法时,您的列表为空。