Hola buenas a todos, esta es la primera consulta que hago en el foro, solo me he dedicado a leer los aportes xD pero bueno acá va.
Pasa que estoy intentando desarrollar una web ocupando Django Framework, en la cual en un formulario necesito subir una foto y me tira un error MultiValueDictKeyError.
Según yo es porqué la foto seleccionada no está pasando al servidor y lo digo por esto:
![[SOLUCIONADO] Ayuda con Django Python](https://i.imgur.com/7MZcCtB.png)
Tengo por códigos:
forms.py
class FormProducto(forms.Form):
CATEGORIAS = (
("PP", "Panes de Pascua"),
("EMP", "Empanadas"),
("PA", "Panes Amasados")
)
nombre = forms.CharField(label="Nombre", max_length=100, widget=forms.TextInput(
attrs={"id": "nombre", "class": "campo"}))
categoria = forms.ChoiceField(label="Categoria", widget=forms.Select(
attrs={"id": "categoria", "class": "campo", "placeholder": "Categoria"}), choices=CATEGORIAS)
precio = forms.IntegerField(label="Precio", min_value=0, widget=forms.NumberInput(
attrs={"id": "precio", "class": "campo", "placeholder": "5000"}))
stock = forms.IntegerField(label="Stock", min_value=0, widget=forms.NumberInput(
attrs={"id": "stock", "class": "campo", "placeholder": "1"}))
foto = forms.ImageField(
label="Foto",required=False, widget=forms.ClearableFileInput(attrs={"id": "foto"}))
descripcion = forms.CharField(label="Descripcion", max_length=255, widget=forms.TextInput(
attrs={"id": "descripcion", "class": "campo"}))
view.py
def addProducto(request):
if request.method == "POST":
form = FormProducto(request.POST,request.FILES)
if form.is_valid():
data = form.cleaned_data
Producto.objects.create(
nombre=data.get("nombre"),
categoria=data.get("categoria"),
precio=data.get("precio"),
stock=data.get("stock"),
descripcion=data.get("descripcion"),
foto=request.FILES["foto"])
return redirect('addProducto')
else:
form = FormProducto()
return render(request, "addProducto.html", { "titulo": "Añadir producto","form": form })
Espero puedan ayudarme ya que llevo unos días con este problema y más me cuesta aún siendo newbie xD
Muchas gracias de antemano!
PD:El archivo settings.py ya está configurado