{ "info": { "author": "Jacek Bzdak", "author_email": "jacek@askesis.pl", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "django-enumfield\n================\n\n\n.. note::\n\n Clone of django-enumfield for django 1.10+\n\nProvides an enumeration Django model field (using IntegerField) with reusable enums and transition validation.\n\n.. image:: https://travis-ci.org/5monkeys/django-enumfield.svg?branch=master\n :target: http://travis-ci.org/5monkeys/django-enumfield\n\n.. image:: https://img.shields.io/pypi/v/django-enumfield.svg\n :target: https://pypi.python.org/pypi/django-enumfield\n\n.. image:: https://img.shields.io/pypi/l/django-enumfield.svg\n :target: https://pypi.python.org/pypi/django-enumfield\n\n.. image:: https://img.shields.io/pypi/pyversions/django-enumfield.svg\n :target: https://pypi.python.org/pypi/django-enumfield\n\n.. image:: https://img.shields.io/pypi/wheel/django-enumfield.svg\n :target: https://pypi.python.org/pypi/django-enumfield\n\n\nInstallation\n------------\n\nCurrently, `we test`__ on supported versions of django and Python versions 2.7, 3.5.\n\nInstall ``django-enumfield`` in your Python environment:\n\n.. _travis: https://travis-ci.org/5monkeys/django-enumfield\n\n__ travis_\n\n.. code:: sh\n\n $ pip install django-enumfield\n\nFor testing with Django 1.9rc1, use\n\n.. code:: sh\n\n $ pip install --pre django-enumfield==1.3b2\n\nIf you are looking for native ``enum`` (or enum34_) support, try testing\n`Pull Request #26`__ which is planned for Django 1.10+.\n\n.. _pr26: https://github.com/5monkeys/django-enumfield/pull/26\n\n__ pr26_\n\n.. _enum34: https://pypi.python.org/pypi/enum34\n\n\nUsage\n-----\n\nCreate an Enum-class and pass it as first argument to the Django model EnumField.\n\n.. code:: python\n\n from django.db import models\n from django_enumfield import enum\n\n class BeerStyle(enum.Enum):\n LAGER = 0\n STOUT = 1\n WEISSBIER = 2\n\n class Beer(models.Model):\n style = enum.EnumField(BeerStyle, default=BeerStyle.LAGER)\n\n.. code:: python\n\n Beer.objects.create(style=BeerStyle.STOUT)\n Beer.objects.filter(style=BeerStyle.STOUT)\n\nYou can use your own labels for Enum items\n\n.. code:: python\n\n class Animals(enum.Enum):\n CAT = 1\n DOG = 2\n\n labels = {\n CAT: 'Cat',\n DOG: 'Dog'\n }\n\nThe Enum-class provides the possibility to use transition validation.\n\n.. code:: python\n\n from django.db import models\n from django_enumfield import enum\n\n class PersonStatus(enum.Enum):\n ALIVE = 1\n DEAD = 2\n REANIMATED = 3\n\n _transitions = {\n DEAD: (ALIVE,),\n REANIMATED: (DEAD,)\n }\n\n class Person(models.Model):\n status = enum.EnumField(PersonStatus)\n\nThese transitions state that a PersonStatus can only go to DEAD from ALIVE and to REANIMATED from DEAD.\n\n.. code:: python\n\n person = Person.objects.create(status=PersonStatus.ALIVE)\n try:\n person.status = PersonStatus.REANIMATED\n person.save()\n except InvalidStatusOperationError:\n print \"Person status can not go from ALIVE to REANIMATED\"\n\nThe Enum-class can also be used without the EnumField. This is very useful in Django form ChoiceFields.\n\n.. code:: python\n\n from django.forms import Form\n from django_enumfield import enum\n\n class GenderEnum(enum.Enum):\n MALE = 1\n FEMALE = 2\n\n labels = {\n MALE: 'Male',\n FEMALE: 'Female',\n }\n\n class PersonForm(forms.Form)\n gender = forms.TypedChoiceField(choices=GenderEnum.choices(), coerce=int)\n\nRendering PersonForm in a template will generate a select-box with \"Male\" and \"Female\" as option labels for the gender field.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/i2biz/django-enumfield", "keywords": "django", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django10-enumfield", "package_url": "https://pypi.org/project/django10-enumfield/", "platform": "any", "project_url": "https://pypi.org/project/django10-enumfield/", "project_urls": { "Homepage": "https://github.com/i2biz/django-enumfield" }, "release_url": "https://pypi.org/project/django10-enumfield/1.4.1/", "requires_dist": null, "requires_python": "", "summary": "Custom Django field for using enumerations of named constants", "version": "1.4.1" }, "last_serial": 3230020, "releases": { "1.4": [ { "comment_text": "", "digests": { "md5": "307318bed7647e0bd8d2c0031fbc8c88", "sha256": "0b59d7de37ecf72400f7a1727380388c667d0b9373ac983cbfd82f12350fc2a6" }, "downloads": -1, "filename": "django10-enumfield-1.4.tar.gz", "has_sig": false, "md5_digest": "307318bed7647e0bd8d2c0031fbc8c88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21930, "upload_time": "2017-10-06T09:42:47", "url": "https://files.pythonhosted.org/packages/c1/90/0dc7176f769ca8dc1760742a9a402e943bb3b9d71e283780cb45e841a9d7/django10-enumfield-1.4.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "9edafc4d88707b6a39f35e8b925391dd", "sha256": "d45966bd585f3a4d209ce9c345ff6c0856173864841b1c1ece8faafa2c15d6b9" }, "downloads": -1, "filename": "django10-enumfield-1.4.1.tar.gz", "has_sig": false, "md5_digest": "9edafc4d88707b6a39f35e8b925391dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21943, "upload_time": "2017-10-06T09:45:57", "url": "https://files.pythonhosted.org/packages/9a/14/a86cf454d6913e6216ffc4a1879a7bf5aa3b82d7bbcb83a30093684ab054/django10-enumfield-1.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9edafc4d88707b6a39f35e8b925391dd", "sha256": "d45966bd585f3a4d209ce9c345ff6c0856173864841b1c1ece8faafa2c15d6b9" }, "downloads": -1, "filename": "django10-enumfield-1.4.1.tar.gz", "has_sig": false, "md5_digest": "9edafc4d88707b6a39f35e8b925391dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21943, "upload_time": "2017-10-06T09:45:57", "url": "https://files.pythonhosted.org/packages/9a/14/a86cf454d6913e6216ffc4a1879a7bf5aa3b82d7bbcb83a30093684ab054/django10-enumfield-1.4.1.tar.gz" } ] }