Загрузите изображение в клиент Django
Моя проблема в том, что загрузка не начинается, когда я отправляю форму, в первый раз я создал ее в представлении и она работала, но для порядка и эффективности я решил передать часть представления в модель, но это не работает
class Archivo(models.Model):
Archivo = models.ImageField(upload_to="Seccion1")
def descarga1(archivo_nombre):
# Obtén la ruta completa del archivo
archivo_ruta = os.path.join(settings.BASE_DIR, "media", "Seccion1", archivo_nombre)
# Crea un objeto FileResponse con la ruta del archivo
response = FileResponse(open(archivo_ruta, "rb"))
# Indica que el archivo debe tratarse como un adjunto para descargar
response['Content-Disposition'] = 'attachment; filename="Hola.png"'
return response
class Jpgtopng(View):
def get(self,request):
return render(request,"Pngtojpg.html",{"form":Formext})
def post(self,request):
Formulario = Formext(request.POST,request.FILES)#?Recibimos datos del formulario
if Formulario.is_valid():
imagen = Formulario.cleaned_data["Archivo"]
imagen_nombre = imagen.name
if Formulario.Extension(imagen_nombre):
Formulario.save()
Archivo.descarga1(imagen_nombre) # Pasa el nombre del
archivormulario.Extension(Imagenrn):#?Pero antes de guardarlo verifica que
su extension sea valida
else:
return HttpResponse("Extension incorrecta")
else:
#? En caso de no ser valido reenviamos el formulario
return render(request,"Pngtojpg.html",{"Formu":Formulario})
return HttpResponse("Hubo un error")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--El multipar/form-data sirve para que el formulario pueda enviar archivos-->
<form action="" method="POST" enctype="multipart/form-data">{% csrf_token %}
{{form}}
<button type="submit"></button>
</form>
</body>
</html>
Мне просто нужно это, если вы можете порекомендовать другие вещи, потому что, возможно, некоторые части моего кода не так эффективны, и, возможно, вы упомянете об этом в любом случае