FileField显示为由django admin上传,但不是来自视图

时间:2015-08-30 02:03:16

标签: python django boto django-storage

我已经安装了boto和django将文件上传到S3。一切似乎都很好 当我从管理员上传文件时,文件在S3中正确保存,我可以从网址中看到它,但是当我使用模板中的普通表单从视图上传文件时,它上传的文件却是没有显示,我收到这条消息:

  

NoSuchKey指定的键没有   exist.media/11831688_978787805518962_14148247639056529_n.jpgB818E754DFF35476K8HkTNpjQjft4dYb9cXH/f5SQrp1glnle11tvoW7SezMxNJvrDFuT/kzJ0z6N9G4sMNyr57c128 =

我的模特:

class InteraccionFotos(models.Model):
    campana = models.ForeignKey(Campana)
    titulo_foto = models.ForeignKey('actividad_fotos.TitulosFotos')
    punto_interaccion = models.ForeignKey(PuntoInteraccion)
    foto = models.FileField(upload_to='.',blank=True,null=True)

    def __unicode__(self):
        return unicode(self.titulo_foto.titulo_foto)

    class Meta:
        ordering = ['id']

我的表格:

class FileForm(forms.ModelForm):
    """Upload files with this form"""
    class Meta:
        model = InteraccionFotos
        fields = '__all__'

这是我的观点:

class SubeFotoView(FormView):
    form_class = FileForm
    success_url = '/'
    template_name = 'tomar_fotos.html'

    def form_valid(self,form):
        form.save(commit=True)
        messages.success(self.request, 'File uploaded!')
        return super(SubeFotoView, self).form_valid(form)

    def post(self, request, *args, **kwargs):
        campana = self.kwargs.get('campana_id')
        point_id = self.kwargs.get('point_id')
        titulo_foto = request.POST['titulo']
        foto = request.FILES['foto']
        valida_foto = InteraccionFotos.objects.filter(campana_id=campana,punto_interaccion_id=point_id,titulo_foto_id=titulo_foto)
        for f in valida_foto:
            if f.foto:
                return HttpResponse("Ya subiste una foto")
            else:
                crea_foto = InteraccionFotos.objects.filter(campana_id=campana,punto_interaccion_id=point_id,titulo_foto_id=titulo_foto).update(foto=foto)          
                data = {}
                data['success'] = "Foto subida con exitosamente"
                return HttpResponse(json.dumps(data), content_type='application/json')

这是我的HTML:

<form action="/subir-fotos/{{campana_id}}/{{point_id}}/" method="POST" enctype="multipart/form-data"id="form_tomaFoto{{page}}">{% csrf_token %}
            <input type="hidden" value="{{p.titulo_foto.id}}" name="titulo">
            <p><input type="file" name="foto" required></p>
            <!--<div class="image-upload" align="center">
                <label for="file-input">
                <img src="http://images.clipartpanda.com/camera-icon-png-slr-camera-xxl.png" width="100px" />
                </label>-->
                <p><input type="submit" value="Enviar foto" class="boton"></p>
            </div>

        </form>

如何正确保存从视图上传的文件在管理员工作?

先谢谢。

0 个答案:

没有答案