Skip to main content

Django library to serve different templates for different device types

Project description

django-devicetype-templates is a library that detect device type by browser’s user agent string and serves different templates for each type.

If standard responsive layouts does not fit all of your needs and if you do not want to use some hacky template loaders with thread locals, you may find this library useful.

Requirements

Installation

Install from PyPi:

pip install django-devicetype-templates

Install development version to virtualenv:

git clone https://github.com/whit/django-devicetype-templates.git
cd django-devicetype-templates
python setup.py develop

Run tests:

python setup.py nosetests

Configuration

Add middleware:

MIDDLEWARE_CLASSES = (
    ...
    'devicetype.middleware.DeviceTypeMiddleware',
)

If you need to use some variables in your templates, you can add devicetype context processor:

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'devicetype.context_processors.devicetype',
)

Then, in templates will be available these variables: devicetype, is_mobile and big_resolution (not implemented yet).

Other settings

DEVICETYPE_TEMPLATE_PREFIX

Prefixes are variable. When you need prefix template file name, use something like tablet-. If you want to have device-specific templates in subfolders, you can use tablet/ prefix for example.

Default:

{
    'desktop': '',
    'mobile': 'mobile/',
    'tablet': 'tablet/',
}

DEVICETYPE_PREFIX_BASENAME

When you use folder-like prefix, like tablet/ and mobile/, with this setting you can select how subfolders will be detected.

With DEVICETYPE_PREFIX_BASENAME = False (default):

tablet/base.html
tablet/app/app_base.html
tablet/layout/three-cols.html
...

With DEVICETYPE_PREFIX_BASENAME = True:

tablet/base.html
app/tablet/app_base.html
layout/tablet/three-cols.html
...

DEVICETYPE_MOBILE_PATTERNS and DEVICETYPE_TABLET_PATTERNS

You can override default search patterns. It search in tablet patterns first.

Build status

Master branch:Travis CI - Distributed build platform for the open source community

Project details


Release history Release notifications

History Node

0.2.3

History Node

0.2.2

History Node

0.2.0

This version
History Node

0.1.9

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django_devicetype_templates-0.1.9-py27-none-any.whl (7.6 kB) Copy SHA256 hash SHA256 Wheel 2.7 Nov 18, 2013
django-devicetype-templates-0.1.9.tar.gz (4.5 kB) Copy SHA256 hash SHA256 Source None Nov 18, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page