Skip to main content

A Django application to provide AJAX autocomplete with Select2.

Project description

Light integration glue between Django and Select2.

This project is inspired by Django-Select2 and django-select2light.

Django-select2-rocks is distributed under the BSD 2-clause license.

Installation

  1. pip install django_select2_rocks

  2. add select2rocks to your INSTALL_APPS

  3. python manage.py collectstatic will install Django Select2 Rocks JS.

  4. Include jQuery (1.7+), Select2 JS/CSS (not provided, tested with v3.4.5) and select2rocks/select2rocks.js in your templates.

  5. Now, you can use Select2ModelChoiceField fields in your forms.

Design

Django-select2-rocks provides widgets to render and initialize Select2 inputs.

The widget rendering is based on Django with a further step which adds a JS initialization for each input (on DOM ready). When a character is typed in the input field, an AJAX request is sent to the URL associated to the field.

The widget API is designed to allow you to pass any arguments you want to Select2 JS code (eg. allowClear option).

You can use various JSON views to answer to Select2 AJAX queries, and so to adjust search terms or the format of the results, it’s possible to extend the default django-select2-rocks backend (see select2rocks-backends.js in testproj for an example).

Example

The testproj project contains examples with a simple JSON view, a Tastypie and a Django REST framework view.

import select2rocks

class BeachForm(forms.Form):
    beach = select2rocks.Select2ModelChoiceField(
        queryset=Beach.objects.all(),
        widget=select2rocks.AjaxSelect2Widget(url_name='json_beaches'))

Subtleties

Beware, the internal representation of the fields uses commas (,) to separate items. Thus you cannot use commas in your labels. Otherwise we’ll interpret it as a separator and try to work with the text on both sides of the comma, which will most likely break.

Get the Code

Django-select2-rocks is developed on GitHub:

https://github.com/polyconseil/django-select2-rocks

You can either clone the public repository:

$ git clone git://github.com/polyconseil/django-select2-rocks.git

Once you have a copy of the source, you can install it with:

$ python setup.py install

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-select2-rocks-0.8.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

django_select2_rocks-0.8.1-py2-none-any.whl (7.8 kB view details)

Uploaded Python 2

File details

Details for the file django-select2-rocks-0.8.1.tar.gz.

File metadata

  • Download URL: django-select2-rocks-0.8.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for django-select2-rocks-0.8.1.tar.gz
Algorithm Hash digest
SHA256 148b1a5938372591efff9e2d3dbd688d868d25cb767fb9509bbf76b43dd8d39e
MD5 5fce64b1ded7533de08d26b1763e8a51
BLAKE2b-256 fd6370cabbf24d3e63d58a1dd948fb1e875bb43b7cd0bd14ccc5a9574766052b

See more details on using hashes here.

File details

Details for the file django_select2_rocks-0.8.1-py2-none-any.whl.

File metadata

  • Download URL: django_select2_rocks-0.8.1-py2-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

File hashes

Hashes for django_select2_rocks-0.8.1-py2-none-any.whl
Algorithm Hash digest
SHA256 3783846c9c51c5665f65909bad10663bf9e09c153cf1d3f3327b64ee181d1144
MD5 37d6e7443e4cab6db0d0cf023f569867
BLAKE2b-256 847ffd14ff1a657650b68a0b7f9af91ccd6d154e805e22c094f394064ecd7c15

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