Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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 Django错误:字符串索引必须是整数,而不是str_Python_Django_Formset - Fatal编程技术网

Python Django错误:字符串索引必须是整数,而不是str

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

获取此错误。如何更改POST表单集数据以确保图像实际得到保存

在/photos/add\u photos处键入错误/ 字符串索引必须是整数,而不是str 申请方式:邮寄 请求URL:/照片/添加照片/ Django版本:1.6.5 异常类型:TypeError 异常值:
字符串索引必须是整数,而不是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...