Skip to content

sophilabs/django-qurl-templatetag

Repository files navigation

Django QUrl Template Tag

image

image

Documentation Status

Updates

image

A Django template tag to modify url's query string.

Documentation

The full documentation is at https://django-url-templatetag.readthedocs.org.

Quick Start

Install Django QUrl Template Tag:

pip install django-qurl-templatetag

After installation is done, add qurl_templatetag to the INSTALLED_APPS setting in your settings.py file:

INSTALLED_APPS = (
    # …
    'qurl_templatetag',
    # …
)

Tag Usage

{% load qurl %}

{% qurl url [param]* [as <var_name>] %}

Parameters:
        name=value: replace all values of name by one value
        name=None: remove all values of name
        name+=value: append a new value for name
        name-=value: remove the value of name with the value
        name++: increment the value by one
        name--: decrement the value by one

Example:

    {% qurl '/search?page=1&color=blue&color=green' order='name' page=None color+='red' color-='green' %}
    Output: /search?color=blue&order=name&color=red

    {% qurl request.get_full_path order='name' %}

Library Usage

A Qurl object has a set of chainable methods to modify the querystring parameters.

Available methods are:

  • set: replace all values of name by one value, parameter is removed when value is None
  • add: append a new value for name
  • remove: remove the value of name with the value
  • inc: increment the value by another value (optional, defaults to 1)
  • dec: decrement the value by another value (optional, defaults to 1)
  • get: build the url
from qurl_templatetag import Qurl

>>> Qurl('http://www.sophilabs.co/?page=1&tags=python')\
        .inc('page', value=2)\
        .add('tags', 'django')\
        .add('tags', 'web')\
        .remove('tags', 'python')\
        .get()
http://www.sophilabs.co/?page=3&tags=django&tags=web

Tests

$ pip install -r requirements/test.pip
$ python runtests.py

About

image

Django Qurl Template Tag is maintained and funded by sophilabs, inc. The names and logos for sophilabs are trademarks of sophilabs, inc.