Skip to main content

Simple fancybox modal for Django

Project description

This is a Django integration of Fancybox.

https://img.shields.io/pypi/v/django-fancybox.svg https://img.shields.io/pypi/dm/django-fancybox.svg https://img.shields.io/github/license/bashu/django-fancybox.svg

Installation

pip install django-fancybox

External dependencies

  • jQuery - This is not included in the package since it is expected that in most scenarios this would already be available.

Setup

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

Usage

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

License

django-fancybox is released under the BSD license.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page