Simple Django Image Proxy especially for Horizon Openstack Dashboard.
Project description
Support Openstack Horizon Dashboard, with this lib is available simple modal preview.
Installation
pip install django_image_proxy
local_settings.py
INSTALLED_APPS += ('image_proxy',)
IMAGE_PROXY_URL = 'localhost:9753/images'
urls.py
urlpatterns = patterns('',
...
url(r'^images/', include('image_proxy.urls')),
...
)
Usage
<img src="{% url 'proxy_image' '/media/anotherdjangoapp.png' %}"/>
<img src="{% url 'proxy_image_preview' '/media/anotherdjangoapp.png' %}"/>
<img src="{% url 'proxy_image' 'my_image_name' '100x100' %}"/>
<img src="{% url 'proxy_image' 'my_image_id' '100x100' 'scale' %}"/>
Custom size and method
http://<hostname>/<path_to_source_file>/<size>/<method>/
For easily using Django Rest Framework should do this
local_settings.py
IMAGE_PROXY_URL = 'localhost:9753'
note: this url is for another django located on the address
# simple using Django Rest Framework Serializer
# for image paths return something like this
images = ["/media/image.jpg", "/media/image01.jpg"]
for image in images:
print reverse("proxy_image", args=[image])
/images/image/media/image.jpg # this url download image from original url and returns it !
Usage with Openstack Horizon Dashboard
Requires installed horizon.
Image in modal dialog.
<a href="{% url 'proxy_image' 'my_image_id' %}" class="ajax-modal">
<img src="{% url 'proxy_image_preview' 'my_image_id' %}"/>
</a>
Override
from image_proxy.views import ThumbnailView
class MyThumbnailView(ThumbnailView)
def get(self, request, *args, **kwargs):
response = http.HttpResponse(self.image, content_type=self.content_type)
return response
TODO
cache thumbnails
Contribution
Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
Fork https://github.com/michaelkuty/django_image_proxy on GitHub to start making your changes to the master branch.
Send a pull request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.