[pyar] Url de static images DRF

Marco Moresi mrc.moresi en gmail.com
Jue Abr 13 12:17:56 ART 2017


>
> 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?
>

Acá le erré yo, porque en el front end le pegas con javascript y AJAX como
mencionaste.


>
>
> 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' },
>     ...
> ]
>
> Ahora voy a codearlo en base a lo que me recomendaste!
Muchas gracias por responder.


> 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
>>
>
>
> _______________________________________________
> 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/01147eed/attachment-0001.html>


Más información sobre la lista de distribución pyar