media_url - Django: obtener la url ImageField a la vista
settings media_url (3)
Estoy intentando obtener la ruta absoluta de ImageField en la vista de Django para poder abrir la imagen, escribir algo en ella y luego entregarla al usuario.
Tengo problemas para obtener la ruta absoluta para la imagen que se guarda en la carpeta de medios.
item = get_object_or_404(Item, pk=pk)
absolute_url = settings.MEDIA_ROOT + str(item.image.path)
Recibo un error, esa item.image no tiene ruta ( The ''banner'' attribute has no file associated with it.
). item.image es ImageField y me gustaría saber cómo obtener la ruta absoluta de la imagen guardada en el campo de imagen (en la vista Django).
Acabo de descubrir cuál era el problema ... la ruta de imagen absoluta se guarda en la variable de archivo.
Ejemplo (a la vista):
item = Item.objects.get(pk=1)
print item.file # prints out full path of image (saved in media folder)
Cuando .url
configurado correctamente, use .url
: item.image.url
. Revisa los documentos here .
Tal vez de esta manera?
@property
def get_absolute_image_url(self):
return "{0}{1}".format(settings.MEDIA_URL, self.image.url)
consulte ¿Cómo puedo obtener una lista de URL de imágenes absolutas de un Django QuerySet?