Skip to main content

Manages to load templates according to the type of device to a specific directory prefix.

These loaders work with the django-mobi app. Please read the documentation for more information: https://pypi.python.org/pypi/django-mobi

Install

It is strongly recommanded to install this theme from GIT with PIP onto you project virtualenv.

From PyPi

pip install django-adaptive

From Github

-e git+https://github.com/RevSquare/django-adaptive#egg=django-adaptive

Setup

Before starting, make sure you have correctly setup django-mobi: https://pypi.python.org/pypi/django-mobi

Django adaptive basicaly overwrites django default filesystem and app_directories loaders. You can pick the overwritten loader you want to use separately and use them concurently with the former django loaders.

The first step is to add the app in your installed apps list in settings.py

INSTALLED_APPS = (
    ...
    'django_adaptive'
    ...
)

Then you will need to declare the loaders you want to add in your settings.py file

TEMPLATE_LOADERS = (
    'django-adaptive.filesystem.Loader',
    'django-adaptive.app_directories.Loader',
    #'django.template.loaders.filesystem.Loader',
    #'django.template.loaders.app_directories.Loader',
)

It’s also possible to use cached loader. It works with django 1.7.x

TEMPLATE_LOADERS = (
('django_adaptive.cached.Loader', (
    'django_adaptive.filesystem.Loader',
    'django_adaptive.app_directories.Loader',
    )),
)

Final step is to add ThreadLocal Middleware

MIDDLEWARE_CLASSES = (
    ...
    'mobi.middleware.MobileDetectionMiddleware',
    'django_adaptive.middleware.ThreadLocals',
    ...
)

Declaring your device prefixes

At this stage nothing will be done. You need to specify the directories for each device categories in your settings.py.

The settings constants are:

  • ADAPTIVE_TEMPLATE_DIRECTORIES_DESKTOP

  • ADAPTIVE_TEMPLATE_DIRECTORIES_TABLET

  • ADAPTIVE_TEMPLATE_DIRECTORIES_MOBILE

Usage exemple:

import os

DEBUG = True
TEMPLATE_DEBUG = DEBUG

PROJECT_PATH = os.path.join(os.path.dirname(__file__), '..')

TEMPLATE_DIRS = (
    os.path.join(PROJECT_PATH, 'templates')
)

ADAPTIVE_TEMPLATE_DIRECTORIES_MOBILE = 'mobile'

This code will install the templates for mobile in the templates/mobile directory. And the rest of the files in templates (by default no prefix is added).

In case you would need to combine devices type in a similar directory, you just need to point them to it. For exemple:

ADAPTIVE_TEMPLATE_DIRECTORIES_DESKTOP = 'desktop'
ADAPTIVE_TEMPLATE_DIRECTORIES_TABLET = 'mobile'
ADAPTIVE_TEMPLATE_DIRECTORIES_MOBILE = 'mobile'

This would render the same type of template for both tablets and mobile devices.

Release files for django-adaptive 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-adaptive 1.0.2
File Size Uploaded
django-adaptive-1.0.2.tar.gz 4.9 kB Details

Release files / django-adaptive-1.0.2.tar.gz

Download URL django-adaptive-1.0.2.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0711dca08d9d85f13cf8796f9350ba0df00f52c35743c10073c6ce1d304814da
BLAKE2b-256 checksum
How to use checksums
d619fb2c9ad1028356c177a3a370d35e3bb81c60026d49e837db5db8d5ea381a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page