我已经安装了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>
如何正确保存从视图上传的文件在管理员工作?
先谢谢。