Widgets Overview¶
Django Gentelella Widgets provides a comprehensive set of form widgets that replace Django’s default widgets with Bootstrap 5 styled, feature-rich alternatives.
Quick Start¶
Import widgets from the core module:
from djgentelella.widgets import core as genwidgets
Use them in your forms:
from django import forms
from djgentelella.forms.forms import GTForm
from djgentelella.widgets import core as genwidgets
class MyForm(GTForm, forms.Form):
name = forms.CharField(widget=genwidgets.TextInput)
email = forms.EmailField(widget=genwidgets.EmailInput)
birth_date = forms.DateField(widget=genwidgets.DateInput)
Or with ModelForm:
class MyModelForm(GTForm, forms.ModelForm):
class Meta:
model = MyModel
fields = ['name', 'email', 'country', 'description']
widgets = {
'name': genwidgets.TextInput,
'email': genwidgets.EmailInput,
'country': genwidgets.Select,
'description': genwidgets.Textarea,
}
Widget Categories¶
Core Inputs (djgentelella.widgets.core)
TextInput- Text input fieldNumberInput- Integer inputFloatInput- Decimal inputEmailInput- Email fieldURLInput- URL fieldPasswordInput- Password fieldHiddenInput- Hidden fieldColorInput- Color pickerTextarea- Multi-line text
Select Widgets (djgentelella.widgets.core)
Select- Single select dropdown (Select2)SelectMultiple- Multi-select dropdownSelectWithAdd- Select with add new optionSelectMultipleAdd- Multi-select with add newRadioHorizontalSelect/RadioVerticalSelect- Radio buttonsNullBooleanSelect- Yes/No/UnknownCheckboxInput- Single checkboxCheckboxSelectMultiple- Multiple checkboxes
Date/Time Widgets (djgentelella.widgets.core)
DateInput- Date pickerDateTimeInput- DateTime pickerTimeInput- Time pickerDateRangeInput- Date range selectorDateRangeInputCustom- Date range with presetsDateRangeTimeInput- DateTime rangeSplitDateTimeWidget- Separate date/time inputsSelectDateWidget- Dropdown date selector
Masked Inputs (djgentelella.widgets.core)
EmailMaskInput- Email with maskPhoneNumberMaskInput- Phone with maskDateMaskInput- Date with maskCreditCardMaskInput- Credit card formatTaxIDMaskInput- Tax ID formatSerialNumberMaskInput- Serial number format
File Widgets (djgentelella.widgets.core and djgentelella.widgets.files)
FileInput- File upload with chunkingClearableFileInput- File with clear optionFileChunkedUpload- Large file uploadImageRecordInput- Camera captureVideoRecordInput- Video recordingAudioRecordInput- Audio recording
Autocomplete Widgets (djgentelella.widgets.selects)
AutocompleteSelect- Single select with remote searchAutocompleteSelectMultiple- Multi-select with remote searchAutocompleteSelectImage- Image selectionAutocompleteSelectMultipleImage- Multiple image selection
Slider Widgets (djgentelella.widgets.core)
GridSlider- Range sliderSingleGridSlider- Single value sliderDateGridSlider- Date range slider
Special Widgets
YesNoInput- Toggle with field visibility controlNumberKnobInput- Circular knob input (djgentelella.widgets.numberknob)TaggingInput/EmailTaggingInput- Tag inputs (djgentelella.widgets.tagging)EditorTinymce- WYSIWYG editor (djgentelella.widgets.tinymce)CalendarInput- Calendar widget (djgentelella.widgets.calendar)DigitalSignatureInput- Digital signature (djgentelella.widgets.digital_signature)
Visualization Widgets (readonly display)
UrlTimeLineInput- Timeline display (djgentelella.widgets.timeline)UrlStoryLineInput- Storyline display (djgentelella.widgets.storyline)MapBasedStoryMapInput- Map story (djgentelella.widgets.storymap)GigaPixelStoryMapInput- High-res image story (djgentelella.widgets.storymap)
Tree Widgets (djgentelella.widgets.trees)
TreeSelect- Hierarchical single selectTreeSelectMultiple- Hierarchical multi-selectTreeSelectWithAdd- Tree select with add newTreeSelectMultipleWithAdd- Tree multi-select with add new
Passing Attributes¶
All widgets accept an attrs parameter for HTML attributes:
class MyForm(GTForm, forms.Form):
name = forms.CharField(
widget=genwidgets.TextInput(attrs={
'placeholder': 'Enter your name',
'class': 'custom-class',
'data-custom': 'value',
'maxlength': 100,
})
)
Common attributes:
placeholder- Placeholder textclass- Additional CSS classesdata-*- Custom data attributes for JavaScriptdisabled- Disable the inputreadonly- Make read-only
API Reference¶
Core Widgets¶
- class djgentelella.widgets.core.AudioRecordInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.CheckboxInput(attrs=None)¶
- class djgentelella.widgets.core.ClearableFileInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.ColorInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.CreditCardMaskInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.DateInput(attrs=None, format=None)¶
Warning
Set in settings
USE_L10N = False
DATE_INPUT_FORMATS=[ ‘%Y-%m-%d’,’%d/%m/%Y’,’%d/%m/%y’]
By limitation on js datetime widget format conversion
- class djgentelella.widgets.core.DateMaskInput(attrs=None)¶
- class djgentelella.widgets.core.DateRangeInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.DateRangeInputCustom(attrs=None, format=None)¶
- class djgentelella.widgets.core.DateRangeTimeInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.DateTimeInput(attrs=None, format=None)¶
Warning
Set in settings
USE_L10N = False
DATETIME_INPUT_FORMATS=[ ‘%m/%d/%Y %H:%M %p’ ]
By limitation on js datetime widget format conversion
- class djgentelella.widgets.core.DateTimeMaskInput(attrs=None)¶
- class djgentelella.widgets.core.EmailInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.EmailMaskInput(attrs=None)¶
- class djgentelella.widgets.core.FileInput(attrs=None, extraskwargs=True)¶
- format_value(value)¶
File input never renders a value.
- value_from_datadict(data, files, name)¶
File widgets take data from FILES, not POST
- class djgentelella.widgets.core.FloatInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.HiddenInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.ImageRecordInput(attrs=None, extraskwargs=True)¶
You can set the preview size using data-width and data-height.
- class djgentelella.widgets.core.Input(attrs=None, extraskwargs=True)¶
Base class for all <input> widgets.
- class djgentelella.widgets.core.NumberInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.PasswordInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.PhoneNumberMaskInput(attrs=None)¶
- class djgentelella.widgets.core.PhoneNumberTwoDigitMaskInput(attrs=None)¶
- class djgentelella.widgets.core.SelectDateWidget(attrs=None)¶
- class djgentelella.widgets.core.SerialNumberMaskInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.SplitDateTimeWidget(attrs=None)¶
- property media¶
Media for a multiwidget is the combination of all media of the subwidgets.
- class djgentelella.widgets.core.SplitHiddenDateTimeWidget(attrs=None)¶
- property media¶
Media for a multiwidget is the combination of all media of the subwidgets.
- class djgentelella.widgets.core.TaxIDMaskInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.TextInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.TimeInput(attrs=None, format=None)¶
- class djgentelella.widgets.core.URLInput(attrs=None, extraskwargs=True)¶
- class djgentelella.widgets.core.VideoRecordInput(attrs=None, extraskwargs=True)¶
You can set the preview size using data-width and data-height.
Note
Size of video depends on camera default configuration.
- class djgentelella.widgets.core.YesNoInput(attrs=None, shparent='.form-group')¶
Tree Widgets¶
Django Gentelella uses django-tree-queries for tree database representations.