Metadata-Version: 1.1
Name: django-multiselectfield
Version: 0.1.12
Summary: Django multiple select field
Home-page: https://github.com/goinnn/django-multiselectfield
Author: Pablo Martin
Author-email: goinnn@gmail.com
License: LGPL 3
Description-Content-Type: UNKNOWN
Description: django-multiselectfield
        =======================
        
        .. image:: https://travis-ci.org/goinnn/django-multiselectfield.png?branch=master
            :target: https://travis-ci.org/goinnn/django-multiselectfield
        
        .. image:: https://coveralls.io/repos/goinnn/django-multiselectfield/badge.png?branch=master
            :target: https://coveralls.io/r/goinnn/django-multiselectfield
        
        .. image:: https://badge.fury.io/py/django-multiselectfield.png
            :target: https://badge.fury.io/py/django-multiselectfield
        
        A new model field and form field. With this you can get a multiple select from a choices. Stores to the database as a CharField of comma-separated values.
        
        This egg is inspired by this `snippet <http://djangosnippets.org/snippets/1200/>`_.
        
        Supported Python versions: 2.7, 3.4+
        
        Supported Django versions: 1.4-2.0+
        
        Installation
        ============
        
        
        Install with pip
        ----------------
        
        .. code-block:: bash
        
            $ pip install django-multiselectfield
        
        Configure your models.py
        ------------------------
        
        .. code-block:: python
        
            from multiselectfield import MultiSelectField
        
            # ...
        
            MY_CHOICES = (('item_key1', 'Item title 1.1'),
                          ('item_key2', 'Item title 1.2'),
                          ('item_key3', 'Item title 1.3'),
                          ('item_key4', 'Item title 1.4'),
                          ('item_key5', 'Item title 1.5'))
        
            MY_CHOICES2 = ((1, 'Item title 2.1'),
                           (2, 'Item title 2.2'),
                           (3, 'Item title 2.3'),
                           (4, 'Item title 2.4'),
                           (5, 'Item title 2.5'))
        
            class MyModel(models.Model):
        
                # .....
        
                my_field = MultiSelectField(choices=MY_CHOICES)
                my_field2 = MultiSelectField(choices=MY_CHOICES2,
                                             max_choices=3,
                                             max_length=3)
        
        
        In your settings.py
        -------------------
        
        Only you need it, if you want the translation of django-multiselectfield
        
        .. code-block:: python
        
            INSTALLED_APPS = (
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.sites',
                'django.contrib.admin',
        
                #.....................#
        
                'multiselectfield',
            )
        
        
        Customizing templates
        ---------------------
        
        It is possible to customize the HTML of this widget in your form template. To do so, you will need to loop through ``form.{field}.field.choices``. Here is an example that displays the field label underneath/after the checkbox for a ``MultiSelectField`` called ``providers``:
        
        .. code-block:: HTML+Django
        
            {% for value, text in form.providers.field.choices %}
              <div class="ui slider checkbox">
                <input id="id_providers_{{ forloop.counter0 }}" name="{{ form.providers.name }}" type="checkbox" value="{{ value }}"{% if value in checked_providers %} checked="checked"{% endif %}>
                <label>{{ text }}</label>
              </div>
            {% endfor %}
        
        
        Django REST Framework
        ---------------------
        
        Django REST Framework comes with a ``MultipleChoiceField`` that works perfectly with this:
        
        .. code-block:: python
        
            from rest_framework import fields, serializers
        
            from myapp.models import MY_CHOICES, MY_CHOICES2
        
            class MyModelSerializer(serializers.HyperlinkedModelSerializer):
                # ...
                my_field = fields.MultipleChoiceField(choices=MY_CHOICES)
                my_field2 = fields.MultipleChoiceField(choices=MY_CHOICES2)
                # ...
        
        
        Known Bugs and Limitations
        ==========================
        
        All tests pass on Django 1.4, 1.5, and 1.8+, so if you can, use a modern version of Django. However, if you must use Django 1.6 or 1.7 there are two known issues you will need to be aware of:
        
        1. `Named groups <https://github.com/goinnn/django-multiselectfield/pull/30#issue-52149983>`_ do not render properly in Django 1.6. The workaround is to manually render the field in your form or use a custom widget. If your workaround is suitably generic, please submit a pull request with it.
        
        2. Only in Django 1.6 and 1.7, due to `Django bug #9619 <https://code.djangoproject.com/ticket/9619>`_, passing a MultiSelectField to ``values()`` or ``values_list()`` will return the database representation of the field (a string of comma-separated values). The workaround is to manually call ``.split(',')`` on the result.
        
           The Django bug was introduced in Django 1.6 and is fixed in Django 1.8 and onward, so ``values()`` and ``values_list()`` return a vanilla Python list of values for Django <= 1.5 and Django >= 1.8.
        
           See `issue #40 <https://github.com/goinnn/django-multiselectfield/issues/40>`_ for discussion about this bug.
        
        
        Development
        ===========
        
        You can get the last bleeding edge version of django-multiselectfield by doing a clone
        of its git repository:
        
        .. code-block:: bash
        
            git clone https://github.com/goinnn/django-multiselectfield
        
        
        Example project
        ===============
        
        There is a fully configured example project in the `example directory <https://github.com/goinnn/django-multiselectfield/tree/master/example/>`_. You can run it as usual:
        
        .. code-block:: bash
        
            python manage.py migrate  # or python manage.py syncdb --noinput
            python manage.py loaddata app_data
            python manage.py runserver
        
        
        0.1.12 (2020-02-20)
        ------------------
        
        * Optimize multiselectfield to_python method
        * Thanks to:
            * `daimon99  <https://github.com/daimon99>`_
        
        0.1.11 (2019-12-19)
        ------------------
        
        * Added support for Django 3
        * Added support for Python 3.8
        * Thanks to:
            * `thijsBoehme  <https://github.com/thijsBoehme>`_
        
        0.1.9 (2019-10-02)
        ------------------
        
        * Added support for Django 2
        * Added support for Python 3.6
        * Drop support for Python (2.6, 3.3)
        * Thanks to:
            * `hirokinko <https://github.com/hirokinko>`_
        
        0.1.6 (2017-05-10)
        ------------------
        
        * Added support for Django 1.11
        * Added support for Python 3.6
        * Improved rendering in Django admin
        * Improved documentation
        * Thanks to:
            * `atten <https://github.com/atten>`_
            * `ixc <https://github.comixc>`_
            * `LeilaniAnn <https://github.comLeilaniAnn>`_
        
        0.1.5 (2017-01-02)
        ------------------
        
        * Added support for Django 1.8-1.10
        * Added support for named groups in choices
        * Added support for min_choices argument
        * Various fixes
        * More tests
        * Thanks to:
            * `danilogbotelho <https://github.comdanilogbotelho>`_
            * `dmitry-krasilnikov <https://github.comdmitry-krasilnikov>`_
            * `Kamil Dębowski <https://github.comkdebowski>`_
        
        0.1.4 (2016-02-23)
        ------------------
        
        * Fixed warning about SubfieldBase
        * Added support for Django 1.8+
        * Added support for named groups
        * We now play nice with django-dynamic-fixture
        * More tests
        
        0.1.3 (2014-10-13)
        ------------------
        
        * Support to Django 1.7 (I'm sorry to the delay)
        * Adding get_FIELD_list function
        * Fix an error when a MultiSelectField was reandonly at the admin site
        * Thanks to:
            * `Hernil <https://github.com/hernil>`_
            * `Vasyl Stanislavchuk <https://github.com/vasyabigi>`_
            * `Litchfield <https://github.com/litchfield/>`_
            * `Chris-erickson <https://github.com/chris-erickson>`_
        
        0.1.2 (2014-04-04)
        ------------------
        
        * Include the spanish translations to the pypi egg
        * Improvements in the readme file
        * Windows OS compatibility
        * Thanks to:
            * `StillNewb <https://github.com/StillNewb>`_
            * `Diego Yungh <https://github.com/DiegoYungh>`_
        
        0.1.1 (2013-12-04)
        ------------------
        * Move the multiselectfield app to parent folder
        * Details
        
        0.1.0 (2013-11-30)
        ------------------
        
        * Test/example project
        * Now works if the first composant of the list of tuple is an integer
        * Now max_length is not required, the Multiselect field calculate it automatically.
        * The max_choices attr can be a attr in the model field
        * Refactor the code
        * Spanish translations
        * Support to python2.6
        * Thanks to:
            * `Daniele Procida <https://github.com/evildmp>`_
        
        0.0.3 (2013-09-11)
        ------------------
        
        * Python 3 compatible
        * Fix an error, the snippet had another error when the choices were translatables
        * Improvements in the README file
        
        
        0.0.2 (2012-09-28)
        ------------------
        
        * Fix an error, the snippet had an error.
        
        0.0.1 (2012-09-27)
        ------------------
        
        * Initial version from the next `snippet <http://djangosnippets.org/snippets/1200/>`_
        
Keywords: django,multiple,select,field,choices
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
