En esta tarea usaremos la clase Forms de Django para añadir datos. Incluiremos también una foto del restaurante aprovechando el tipo de campo ImageField, de mongoengine. (Para usarlo hay que instalar la librería pillow)
También haremos una página de detalle con los datos de cada restaurante, incluyendo la foto, a la que se acceda:
http://localhost:8000/restaurante/nombre_del_restaurante
ó mejor
http://localhost:8000/restaurante/restaurante_id (que debe ser único)
Django URL dispatcher
1.- Hacer un form compatble con la clase de mongoengine, que incluya algún validador y subir una imagen
2.- A la vuelta del form, tener en cuenta la subida de archivos en el formulario (Binding uploaded files to a form), y que haya un campo de clave única en la BD (puede ser restaurant_id o el nombre). Para guardar la imágen en mongo, simplemente:
restaruante = restaurants(
name = form.cleaned_data.get('name') # después de validar
...
foto = request.FILES.get('foto')
)
3.- Hacer una salida con los datos cada restaurante. Para leer la imágen de la BD: GridFs
Para que quede mejor, se puede utilizar django-boostrap4 o similar