为什么循环只保存Django中的最后一个文件?

时间:2017-02-08 19:58:44

标签: django django-forms django-templates django-views

当我在模板中选择两个图像时,保存方法总是保存最后选择的图像,但我不明白它发生了什么。

这是我的观点:

class imgcreate(CreateView):
    model = Archivos
    template_name = 'img.html'
    form_class = imgForm
    success_url =  reverse_lazy('BackEnd:unidades')

    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        files = request.FILES.getlist('imagen')
        if form.is_valid():
            a = 0
            for imagen in files:
                a = a+1
                img = form.save(commit=False)
                img.id_unidad = 1
                img.tipo_archivo = 1
                img.nombre_archivo ='hhh'+ str(a) 

                img.save()
            print(a);


            return self.form_valid(form)

        else:
            return self.form_invalid(form)

print始终返回图像的名称,其中2表示仅保存最后一张图像

1 个答案:

答案 0 :(得分:0)

这对我有用:

foo.next