Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Ao fazer o upload da imagem pelo input type, dá MultValueDictError

Como resolvo o problema de MultiValue?? Tentei refazer tudo já umas 10 vezes e nada de o problema sair, já:

  • mudei os nomes dos name="" no html,
  • já exclui e refiz o Model,
  • já troquei a views de posição, -já coloquei request.FILES['name_da_foto'], -já coloquei o accept só pra imagens, -Já apaguei todas as fotos que coloquei anteriormente pelo django admin, -já refiz a view e testei um print dos dados que capturei nos input... Todos trazem dados, exceto a imagem que dá o erro de MultiValue...,

Segue o input type=file:

{% csrf_token %}
    <label for="">

<input type="file" class="form-control" accept="image/* name="foto_produtos" required>

</label>
Seque o Model:

from django.db import models from django.contrib.auth.models import User

class Produtos(models.Model):

vendedor_auth=models.ForeignKey(User,on_delete=models.CASCADE)    
produto=models.CharField(max_length=200)
medida=models.CharField(max_length=200)    
categoria=models.CharField(max_length=200)    
descricao=models.TextField(max_length=200)          
quantidade_por_embalagem=models.IntegerField()  
foto_produto=models.ImageField(upload_to="fotos/%d/%m/%Y/",blank=True)   
publicada=models.BooleanField(default=False)


def __str__(self):
    return self.produto

Segue a view:

def cadastrando_produtos(request):

if request.method=='POST':
    produto=request.POST['produto']
    categoria=request.POST['categoria']
    descricao=request.POST['descricao']
    quantidade_por_embalagem=request.POST['quantidade_por_embalagem']  
    foto_produtos=request.FILES['foto_produtos']
    publicada=request.POST['publicada']
    print(publicada,produto,categoria,descricao,quantidade_por_embalagem,foto_produtos)


    return redirect('dashboard')
else:
    return('form_produtos')
3 respostas

Fala Raul, tudo ber parceiro?

Poderia manda um print do erro que está acontecendo ?

Abraços!

solução!

Fala André, acabei por descobrir o porquê do erro. Faltava inserir na Tag input o atributo enctype='multipart-form-data'. Depois que o coloquei, tudo carregou normalmente. Obrigado por tentar ajudar.

Fala Raul, Que bom então! Bons estudos.

Grande Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software