Reference Widgets
Widgets inheriting from the Select widget deal with choices. They present the user with a list of options to choose from.
255 sections across all versions Narrow to Django 6.0 (current) →
Reference Widgets
Widgets inheriting from the Select widget deal with choices. They present the user with a list of options to choose from.
Topic guide Templates Support for template engines
Template objects returned by get_template() and select_template() must provide a render() method with the following signature: Template.render(context=None,request=None) : Renders this template with a given context. Here’s an example of the search algorithm.
Reference Form fields Built-in Field classes
classChoiceField(**kwargs)[source] : - Default widget: Select - Empty value: '' (an empty string) - Normalizes to: A string. - Validates that the given value exists in the list of choices. - Error message keys: required, invalid_choice
Reference Form fields Built-in Field classes
classFilePathField(**kwargs)[source] : - Default widget: Select - Empty value: '' (an empty string) - Normalizes to: A string. - Validates that the selected choice exists in the list of choices. - Error message keys: required, invalid_choice
Reference Form fields Fields which handle relationships
classModelChoiceField(**kwargs)[source] : - Default widget: Select - Empty value: None - Normalizes to: A model instance. - Validates that the given id exists in the queryset. - Error message keys: required, invalid_choice
Reference Widgets Built-in widgetsSelector and checkbox widgets
classNullBooleanSelect[source] : - template_name: 'django/forms/widgets/select.html' - option_template_name: 'django/forms/widgets/select_option.html'
Reference Widgets Built-in widgetsSelector and checkbox widgets
classSelectMultiple[source] : - template_name: 'django/forms/widgets/select.html' - option_template_name: 'django/forms/widgets/select_option.html'
Reference Widgets Built-in widgetsComposite widgets
classSelectDateWidget[source] : - template_name: 'django/forms/widgets/select_date.html'
Reference QuerySet API reference QuerySet APIMethods that return new QuerySets
extra(select=None,where=None,params=None,tables=None,order_by=None,select_params=None) Sometimes, the Django query syntax by itself can’t easily express a complex WHERE clause. For these edge cases, Django provides the extra() QuerySet modifier — a hook for injecting specific clauses into the SQL generated by a QuerySet.
Topic guide Multiple databases Manually selecting a database
You can select the database for a QuerySet at any point in the QuerySet “chain.” Call using() on the QuerySet to get another QuerySet that uses the specified database.
Topic guide Translation Internationalization: in template code
If you want to select a language within a template, you can use the language template tag: While the first occurrence of “Welcome to our page” uses the current language, the second will always be in English.
Reference Widgets Built-in widgetsSelector and checkbox widgets
classCheckboxSelectMultiple[source] : - template_name: 'django/forms/widgets/checkbox_select.html' - option_template_name: 'django/forms/widgets/checkbox_option.html' Like RadioSelect, you can loop over the individual checkboxes for the widget’s choices.
Reference QuerySet API reference QuerySet APIField lookups
Greater than. Example: SQL equivalent:
Reference QuerySet API reference QuerySet APIField lookups
Case-sensitive containment test. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) Note this will match the headline 'Lennon honored today' but not 'lennon honored today'.
Reference QuerySet API reference QuerySet APIField lookups
Case-insensitive containment test. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) NOTE: When using the SQLite backend and non-ASCII strings, bear in mind the > database note about string comparisons.
Reference QuerySet API reference QuerySet APIField lookups
Case-sensitive starts-with. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) SQLite doesn’t support case-sensitive LIKE statements; startswith acts like istartswith for SQLite.
Reference QuerySet API reference QuerySet APIField lookups
Case-insensitive starts-with. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) NOTE: When using the SQLite backend and non-ASCII strings, bear in mind the > database note about string comparisons.
Reference QuerySet API reference QuerySet APIField lookups
Case-sensitive ends-with. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) NOTE: SQLite doesn’t support case-sensitive LIKE statements; endswith > acts like iendswith for SQLite. Refer to the database note documentation for more.
Reference QuerySet API reference QuerySet APIField lookups
Case-insensitive ends-with. Example: SQL equivalent: (The exact SQL syntax varies for each database engine.) NOTE: When using the SQLite backend and non-ASCII strings, bear in mind the > database note about string comparisons.
Reference Settings Core Settings
New in Django 6.1. Default: False The default blank choice label in Select widgets was changed from "---------" to django.db.models.fields.BLANK_CHOICE_LABEL. Set this transitional setting to True to revert to the previous label.