[pyar] Url de static images DRF
Juan Antonio Alvarez
jualvarez en gmail.com
Jue Abr 13 11:52:21 ART 2017
Hola Marco,
Hay algo que no entiendo... ¿A las imágenes las vas a pedir a un endpoint
de DRF que te devuelve un JSON? Si es así, ¿Para qué necesitás un template
de Django?
Si vas a hacer una arquitectura REST, donde el front le pide los datos al
back, típicamente usarías un framework javascript desde donde pedís por
AJAX las imágenes, las iterás y las mostrás.
Estaría bueno que compartas parte del modelo y los serializadores, o la
idea, pero en general yo haría algo como (o estoy escribiendo de memoria,
asi que no esperes que ande :):
# models.py
class Icono(models.Model):
imagen = models.ImageField()
# serializers.py
class IconoSerializer(serializers.ModelSerializer):
class Meta:
model = Icono
fields = ['imagen']
# views.py
class IconoViewSet(viewsets.ModelViewSet):
queryset = Icono.objects.all()
serializer_class = IconoSerializer
# urls.py
router.register('icono', IconoViewSet)
# Suponiendo que tu api vive en /api
urlpatterns = patterns(
url(r'^api/', include(router.urls))
)
Y no hay mucha mas historia. Ahora le pegás a tu API con:
http://localhost:8000/api/icono/
Y eso te va a traer una lista con todas las imágenes, con la forma:
[
{ imagen: '/media/imagen1.png' },
{ imagen: '/media/imagen2.png' },
...
]
Desde acá tenés mil formas de customizar la salida. La doc de DRF está muy
bien. Yo empezaría por el tuto e ir construyendo desde ahí.
¡Suerte!
Juan
2017-04-12 15:27 GMT-03:00 Marco Moresi <mrc.moresi en gmail.com>:
> Buenas gente, como andan? escribo por acá mi duda, que planteé en el IRC,
> pero como no queria spamear todo el chat con mi duda, me parece mejor
> redactarla acá.
> Estoy trabajando en una API desarrollada con DRF, y tengo que servir
> imágenes estáticas, que estan guardadas en el directorio media, para que el
> front end le "pegue" a la api y devuelva la lista de imagenes
>
> Entonces mi idea fue armar una vista donde devuelva
>
> [
> {
> "img1": "http;//myapi.com/media/icons/icono1.png",
> "img2": "http;//myapi.com/media/icons/icono2.png",
> "img3": "http;//myapi.com/media/icons/icono2.png"
> },
> ]
>
> para que en el template use
> <img src = 'http;//myapi.com/media/icons/icono1.png'>
> en vez de
>
> {% load media %}<img src="{% media "icons/icono1.jpg" %}">
>
> en settings.py configure (valga la redundancia)
> MEDIA_ROOT = os.path.join(BASE_DIR, 'images')
> MEDIA_URL = '/images/'
>
> y en urls.py
>
> urlpatterns = [
>
> """ las url del proyecto ""
>
> ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
>
> Lo que no entiendo como hacer, es como obtener todas las URL de las imágenes estáticas, para poder agregarlas a la vista.
>
> En este momento lo estoy probando localmente, entonces ingreso a http://localhost:8000/media/icons/icono1.png y el browser me lo renderiza, mi idea seria obtener todas esas URL ponerlas en una lista/diccionario (a determinar), y devolverlas como vista, para que desd el front end no tenga que usar cosas de Django, si no que directamente use la URL.
>
> Espero que se entienda mi pregunta! y que no sea muy bolud*.
>
> Pero no se me ocurre la solución.
>
> Desde ya muchas gracias, saludos Marco
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170413/b2b1b4fe/attachment-0001.html>
Más información sobre la lista de distribución pyar