Estoy trabajando con una aplicación de cámara web y estoy tratando de integrarla en el marco Django.
Esta es la función que toma una foto (es javascript en una carpeta estática):
// play sound effect shutter.play(); // take snapshot and get image data Webcam.snap( function(data_uri) { // display results in page document.getElementById('results').innerHTML = '<img id="imageprev" src="'+data_uri+'"/>'; } ); document.getElementById("camera").outerHTML = ""; Webcam.reset(); }Esta es una fracción de mi plantilla:
<div id="camera"></div> <button onclick="takeSnapShot()" type="button" id="button1" class="button-1">Take Picture</button> <form action="" enctype="multipart/form-data" method="POST"> {% csrf_token %} <div name="results" id="results"></div> <div class="button-2"> <button type="submit" href="/">Pateikti</button> </div> </form>Entonces, después de tomar la foto, muestra una imagen dentro de la etiqueta <div> cuya identificación es "resultados" Y ahora quiero guardar la fotografía tomada. Así que probé el método POST, pero cuando lo hago, la plantilla se vuelve a cargar y la imagen se pierde. Así que creo que es por eso que recibo esta ventana de error . También suele usarse el método POST cuando desea guardar archivos en su servidor que carga el cliente, por lo que no estoy seguro de si esta es la mejor manera de hacerlo.
Entonces mi pregunta es: ¿Existe algún método para guardar una imagen en su servidor desde una plantilla? ¿O estoy usando mal el método POST? No quiero usar PHP ya que todavía soy nuevo en la programación.
views.py para código adicional:
from django.shortcuts import render from .models import photo from django.core.files.storage import FileSystemStorage import datetime # Create your views here. def index(request): if request.method == 'POST': file=request.FILES['imageprev'] fs=FileSystemStorage() filen = fs.save(datetime.datetime.now(), file) return render(request, 'index.html') else: return render(request, 'index.html')modelos.py:
from django.db import models class photo(models.Model): file = models.FileField(upload_to='file')Espero que mi problema sea comprensible, si no es así, solicite más información. Con mucho gusto lo proporcionaré.