The Design and Development of Choices in Django 3.0
09-19, 16:30–17:10 (Europe/Lisbon), Virtual

The story of how the Choices feature in Django 3.0 came to be, and how we met challenges of design, implementation, and the project's process. A peek "behind the curtains"(*) of Django development - from discussions and proof-of-concept to a merged PR - and some lessons learned.

(*) It's all public

One of the most noted highlights of version 3.0 of Django is the ability to specify field choices using enumeration types, known as Choices, as an alternative to the old way, using sequences of value-display pairs.

In this talk we will present this feature and follow its development from the original, failed proposal, through its resurrection and the journey to inclusion on Django. We'll examine the process and the design issues, the objections and problems raised, and study the technical considerations and solutions which eventually led to Choices in Django 3.0.

See also: slides (4.3 MB)

Over 30 years in software development, over 20 years using Python. A member of the Django Core Team. Board Member at Hamakor, the Israeli Free Software NPO, and co-founder of PyCon Israel. Today working as a consultant at Kaplan Open Source Consulting.

Github: shaib

Twitter: @shaib_il (DMs open)

Mail: or