我尝试更新自定义表单,为用户新条目和用户更新使用相同的表单。在提交代码我使用if else进行更新和提交,它显示错误“字符串索引必须是整数,而不是str”
views.py: -
def applicationvalue(request):
if request.method == 'POST':
if request.method['usubmit'] == 'new':
getappid = request.POST['appid']
getjobtitle = request.POST['jobtitle']
getodesk = request.POST['odeskid']
getspecification = request.POST['clientspecification']
getnotes = request.POST['notes']
request.session['getappid'] = getappid
getintable = applicationform(user_id = request.user.id , app_id = getappid, job_title = getjobtitle, odesk_id = getodesk, client_specification = getspecification, job_type = request.POST['jobtype'], notes = getnotes)
getintable.save()
return HttpResponseRedirect('/tableview/')
else:
request.method['usubmit'] == 'Update'
saveapplid = request.POST['appid']
savejobtitle = request.POST['jobtitle']
saveodesk = request.POST['odeskid']
savespecification = request.POST['clientspecification']
savenotes = request.POST['notes']
saveapp = applicationform.objects.get(app_id = saveapplid)
saveapp.job_title = savejobtitle
saveapp.odesk_id = saveodesk
saveapp.user_specification = savespecification
saveapp.notes = savenotes
saveapp.save()
return HttpResponse(1)
# return HttpResponseRedirect('/tableview/')
else:
return render_to_response('registration/applicationform.html')
此代码运行时显示错误 “字符串索引必须是整数,而不是str”
答案 0 :(得分:2)
request.method
是一个字符串(您刚刚在第一个"POST"
语句中测试它是否等于if
)!
您打算反对request.POST['usubmit']
进行测试吗?
该行:
if request.method['usubmit'] == 'new':
会抛出错误,但也许你想要:
if request.POST['usubmit'] == 'new':
代替。而且,行:
else:
request.method['usubmit'] == 'Update'
不要做你认为他们做的事。对于第二个块,如果usubmit
等于'Update'
,您可能希望测试:
elif request.POST['usubmit'] == 'Update':