$npx skillfedfor your agent

django-extended-choices

Little helper application to improve django choices (for fields)

With conditionsPyPI LibrariesReleased Apr 201991.6K downloads / moBSDPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — django_extended_choices-1.3.3-py2.py3-none-any.whl
v1.3.3 · released 2019-04-16 · Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* · 1 runtime deps: six

Yes, if you are on Django 1.8–2.2 and Python 2.7 or 3.4–3.7. The package solves a real readability and maintainability problem in Django choice handling. However, do not use it for new projects targeting newer Django or Python versions—the lack of maintenance means you will not receive compatibility updates. For legacy codebases still on supported versions, it remains stable with no known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Low install friction with a single lightweight dependency (six).
  • However, the package is abandoned—last commit was 2019-12-10 and no releases since 2019-04-16.
  • It still works with the Django versions declared, but will not receive updates for newer versions.

License · maintenance · safety

BSD (permissive) — BSD license (permissive) imposes no significant restrictions on use, modification, or distribution in your own projects.

last release 2019-04-16 (2677 days) · last repo commit 2019-12-10 · 83 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 91,551 downloads/mo, #13,513 on PyPI

Verify before relying

pip install django-extended-choices

from extended_choices import Choices

STATES = Choices(
    ('ONLINE',  1, 'Online'),
    ('DRAFT',   2, 'Draft'),
    ('OFFLINE', 3, 'Offline'),
)

print(STATES.ONLINE)
print(STATES.for_value(1).display)
  • Whether the package works with Django versions released after 2.2
  • Whether Python 3.8+ compatibility has been tested despite classifiers only declaring up to 3.7
Same gist for agents: .md · .json

What it is and what it does

django-extended-choices replaces Django's verbose choice pattern (separate constants, tuples, and lookup dicts) with a single Choices object that holds the constant name, database value, and human-readable display text. You define choices once—e.g., Choices(('ONLINE', 1, 'Online'), ('DRAFT', 2, 'Draft'))—and then access them as STATES.ONLINE, pass STATES directly to model field choices, and look up entries by constant, value, or display name via methods like for_constant() and for_value().

The package also supports creating subsets of choices, ordered dicts, membership testing, and iteration. It depends only on six for Python 2/3 compatibility. The main constraint is that it is no longer maintained; the last release was in April 2019 and the repository has not received commits since December 2019.

Use it for

  • Define Django model field choices once with constants, values, and display names, then reference them throughout your code without repeating tuples.
  • Look up the display text for a stored choice value in a model instance using for_value().
  • Restrict a model field to a subset of choices using add_subset().
  • Iterate over choices in templates or views without manually unpacking tuples or maintaining separate lookup dicts.
  • Check membership and validate choice values programmatically using has_constant(), has_value(), or has_display().

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you are on Django 1.8–2.2 and Python 2.7 or 3.4–3.7.

The package solves a real readability and maintainability problem in Django choice handling. However, do not use it for new projects targeting newer Django or Python versions—the lack of maintenance means you will not receive compatibility updates. For legacy codebases still on supported versions, it remains stable with no known vulnerabilities.

Install

django-extended-choices on PyPI

Before you install

Low install friction with a single lightweight dependency (six). However, the package is abandoned—last commit was 2019-12-10 and no releases since 2019-04-16. It still works with the Django versions declared, but will not receive updates for newer versions.

License in practice

BSD license (permissive) imposes no significant restrictions on use, modification, or distribution in your own projects.

Quickstart

pip install django-extended-choices

from extended_choices import Choices

STATES = Choices(
    ('ONLINE',  1, 'Online'),
    ('DRAFT',   2, 'Draft'),
    ('OFFLINE', 3, 'Offline'),
)

print(STATES.ONLINE)
print(STATES.for_value(1).display)

Verify before relying

  • Whether the package works with Django versions released after 2.2
  • Whether Python 3.8+ compatibility has been tested despite classifiers only declaring up to 3.7

Package facts

LicenseBSD permissive
Python supportSupports the current Python release >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
six
MaintenanceAbandoned 2,677 days since the last release
Last repo commit
First released
Downloads91,551 / month, #13,513 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableFramework :: DjangoFramework :: Django :: 1.10Framework :: Django :: 1.11Framework :: Django :: 1.8Framework :: Django :: 1.9Framework :: Django :: 2.0Framework :: Django :: 2.1Framework :: Django :: 2.2Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Topic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules

Evidence: django_extended_choices-1.3.3-py2.py3-none-any.whl

Tags

Capabilities
django choices helperdjango field choicesdjango constants managementdjango choice declarationsreadable django choicesdjango choice lookupdjango choice subsets
Topics
django-utilitychoice-management
PyPI keywords
redisormjobsqueue

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “django choices helper”

Give your agent the search over MCP, or paste the wish link into any chat.

More Libraries packages

urllib3 Worth it
PyPI · Libraries · released May 2026

urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.

MITpure Python · 3.10+
1.8Bdownloads / mo
requests Worth it
PyPI · Libraries · released May 2026

Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.

Apache-2.0pure Python · 3.10+
1.8Bdownloads / mo
pluggy Worth it
PyPI · Libraries · released May 2025

Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.

Install it if you're building an extensible application or framework.

MITpure Python · 3.9+aging
1.3Bdownloads / mo
python-dateutil Worth it
PyPI · Libraries · released Mar 2024

Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.

Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.

Apache-2.0pure Python
1.2Bdownloads / mo
six With conditions
PyPI · Libraries · released Dec 2024

Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.

MITpure Python
1.2Bdownloads / mo
pytest Worth it
PyPI · Libraries · released Jun 2026

pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.

MITpure Python · 3.10+
1.1Bdownloads / mo

See also django-autocomplete-light · django-enumfields · django-ordered-model · django-multiselectfield · django-add-default-value · drf-writable-nested · django-nested-inline · django-pgviews-redux · django-lifecycle · django-eveuniverse