Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Python
Branch: master

Merge pull request #11 from pazur/patch-1

Use json instead of django.utils.simplejson.
latest commit 09d95d37e5
@tomwys tomwys authored
Failed to load latest commit information.
javascript_settings
.travis.yml
AUTHORS
LICENSE
MANIFEST.in
README.rst
runtests.py
setup.py
tox.ini

README.rst

javascript-settings

javascript-settings is a Django application that provides a way of passing values backend from Django applications to JavaScript in templates.

Installation

Package

javascript-settings can be installed as a normal Python package.

Example instalation for pip:

$ pip install django-javascript-settings

Example instalation from file:

$ pip install django-javascript-settings-1.1.tar.gz

Configuration

settings.py

Add javascript-settings to INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'javascript_settings',
    ...
)

Add javascript-settings.finders to STATICFILES_FINDERS:

STATICFILES_FINDERS = (
    ...
    'javascript_settings.finders.JavascriptSettingsFinder',
    ...
)

template

You can use one of following ways to pass gathered data to template:

Option 1: Import

Add javascript-settings.js to script imports:

<script type="text/javascript" src="{{ STATIC_URL }}javascript-settings.js"></script>

Option 2: Template tag

Add javascript-settings tag to your main template:

{% load javascript_settings_tags %}
<script type="text/javascript">{% javascript_settings %}</script>

Usage

Configuration is defined by adding javascript_settings function to urls.py of app. javascript_settings should take no arguments and return json-serializable object. Serialized object is then avaliable in Javascript as configuration['app_name'].

If you want to place javascript_settings in different location, then you can define JAVASCRIPT_SETTINGS_SCAN_MODULES as a dictionary of 'app_name': 'module_location'.

Example

Template:

<script type="text/javascript" src="{{ STATIC_URL }}javascript-settings.js"></script>

urls.py in an app "home":

def javascript_settings():
    return {
        'page_title': 'Home',
        'page_version': '1.9.20',
        'css': {
            'white': './css/white.css',
            'black': './css/black.css',
            'print': './css/print.css',
        },
        'default_css': 'white',
    }

Result in file javascript-settings.js:

var configuration = {'home': {'page_title': 'Home', 'page_version': '1.9.20', 'css': {'white': './css/white.css', 'black': './css/black.css', 'print': './css/print.css'}, 'default_css': 'white'}};
Something went wrong with that request. Please try again.