This is a Django integration of Fancybox.
First install the module, preferably in a virtual environment. It can be installed from PyPI:
pip install django-fancybox
- jQuery - This is not included in the package since it is expected that in most scenarios this would already be available.
Add fancybox
to INSTALLED_APPS
:
INSTALLED_APPS += (
'fancybox',
)
Be sure you have the django.template.context_processors.request
processor
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'django.template.context_processors.request',
],
},
},
]
and just include fancybox
templates
{% include "fancybox/fancybox_css.html" %} {# Before the closing head tag #}
{% include "fancybox/fancybox_js.html" %} {# Before the closing body tag #}
When deploying on production server, don't forget to run :
python manage.py collectstatic
Extend base template for ajax requests
{% extends request.is_ajax|yesno:"fancybox/base.html,base.html" %}
Add class="fancybox"
to a link, and set the href to a page you want to display
<a data-fancybox data-type="ajax" href="{% url 'remote.html' %}" class="fancybox">Click here</a>
Please see example
application. This application is used to manually test the functionalities of this package. This also serves as a good example.
You need only Django 1.4 or above to run that. It might run on older versions but that is not tested.
If you like this module, forked it, or would like to improve it, please let us know! Pull requests are welcome too. :-)
django-fancybox
is released under the BSD license.