【问题标题】:How to update a ImageField from views in django如何从 django 中的视图更新 ImageField
【发布时间】:2016-03-29 08:35:32
【问题描述】:

我有点沮丧尝试从表单更新照片。我有这个:

<form action="/subir-fotos/{{campana_id}}/{{point_id}}/" method="POST" enctype="multipart/form-data" id="form_tomaFoto{{page}}">{% csrf_token %}

<input type="hidden" value="{{i.titulo_foto.id}}" name="titulo">
<p><input type="file" accept="image/*" name="foto" required></p>

<p><input type="submit" value="Enviar foto" class="boton"></p>
</div>
</form>

我的模特:

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

然后,在我看来,我有这个:

class SubeFotoView(FormView):
    form_class = FilebabyForm
    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']
        crea_foto = InteraccionFotos.objects.filter(pk=1,campana_id=3,punto_interaccion_id=5).update(foto=foto)
        data = {}
        data['success'] = "Foto subida con exitosamente"
        return HttpResponse(json.dumps(data), content_type='application/json')

正如您在crea_foto 变量中看到的那样,我有一个查询集,我在其中创建了一个过滤器,然后更新了foto 字段,但我无法让它工作。事情是,如果改为过滤,我做一个create 查询集可以正常工作并创建照片,如果我从头开始上传或更新照片也可以在管理员中正常工作。只发生在update 查询集上,有什么解决方法的线索吗?

PS:我使用的是 Boto,但是由于图像是通过其他方法上传的,所以 Boto 是问题所在。

【问题讨论】:

    标签: django file-upload django-forms image-uploading


    【解决方案1】:

    真的很简单,只需在 POST 方法中添加:

    m = InteraccionFotos.objects.get(pk=1)
    m.foto = request.FILES['foto']
    m.save()
    

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 2020-11-19
      • 2013-03-23
      • 2015-02-22
      • 2023-03-19
      • 2021-10-22
      相关资源
      最近更新 更多