Python Django错误:字符串索引必须是整数,而不是str
获取此错误。如何更改POST表单集数据以确保图像实际得到保存 在/photos/add\u photos处键入错误/ 字符串索引必须是整数,而不是str 申请方式:邮寄 请求URL:/照片/添加照片/ Django版本:1.6.5 异常类型:TypeError 异常值:Python Django错误:字符串索引必须是整数,而不是str,python,django,formset,Python,Django,Formset,获取此错误。如何更改POST表单集数据以确保图像实际得到保存 在/photos/add\u photos处键入错误/ 字符串索引必须是整数,而不是str 申请方式:邮寄 请求URL:/照片/添加照片/ Django版本:1.6.5 异常类型:TypeError 异常值: 字符串索引必须是整数,而不是str @login_required def addimage(request): user = request.user blogposts = Blogp
字符串索引必须是整数,而不是str
@login_required
def addimage(request):
user = request.user
blogposts = Blogpost.objects.filter(user=user)
imageformset = formset_factory(Image, AddImageForm,extra=1)
if request.method == "POST":
formset = imageformset(request.POST, request.FILES)
print formset
if formset.is_valid() :
for form in formset.cleaned_data:
image = form['image']
title = form['title']
blogpost = form['blogpost']
description = form['description']
photo = Image(
title = title,
image= image,
blogpost=blogpost,
description=description,
)
photo.user = request.user
photo.save()
messages.success(request, 'We did it. Pictures are on the interwebs!')
return HttpResponseRedirect("/%s/%s/" % (user, blogpost.slug))
else:
messages.error(request, 'Oh no! Something went wrong. Try again.')
return HttpResponseRedirect('/photos/add_photos/')
else:
formset = imageformset()
formset.fields['blogpost'].queryset = Blogpost.objects.filter(user=user)
return render_to_response('photos/add_photos.html', {
'formset' : formset,
'blogpost' : blogposts,
},
context_instance=RequestContext(request))
错误在这一行:
for form in formset.cleaned_data:
实际上,您需要做的是遍历formset.forms
,然后针对每个表单访问cleaned\u数据
:
for form in formset:
image = form.cleaned_data['image']
..etc...