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


Download files

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

Source Distribution

django-devicetype-templates-0.1.7.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-devicetype-templates-0.1.7.tar.gz.

File metadata

File hashes

Hashes for django-devicetype-templates-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1297b166cf3d7c5cc9f6269b9f5f9e047932396f0559431667ca25aba6f1edd0
MD5 7fed0092412689882e870635bba3069c
BLAKE2b-256 4e3c9b53df5798f0545a056c8a48ed4a179b050730a8e5375d588191ccc15d1f

See more details on using hashes here.

File details

Details for the file django_devicetype_templates-0.1.7-py27-none-any.whl.

File metadata

File hashes

Hashes for django_devicetype_templates-0.1.7-py27-none-any.whl
Algorithm Hash digest
SHA256 6576fa0f1278d65ea1b388751f711569d6b8290698a1951700059c1f16bb6a32
MD5 00dd122a424c8d9407bd6b22e8f79019
BLAKE2b-256 24cb9d15897e4a52426d518fc9b5472784100031a15d6d14ff36ade7291a99cd

See more details on using hashes here.

Supported by

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