How to insert a checkbox in a django form
Solution 1:
models.py:
class Settings(models.Model):
receive_newsletter = models.BooleanField()
# ...
forms.py:
class SettingsForm(forms.ModelForm):
receive_newsletter = forms.BooleanField()
class Meta:
model = Settings
And if you want to automatically set receive_newsletter
to True
according to some criteria in your application, you account for that in the forms __init__
:
class SettingsForm(forms.ModelForm):
receive_newsletter = forms.BooleanField()
def __init__(self):
if check_something():
self.fields['receive_newsletter'].initial = True
class Meta:
model = Settings
The boolean form field uses a CheckboxInput
widget by default.
Solution 2:
You use a CheckBoxInput widget on your form:
https://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.CheckboxInput
If you're directly using ModelForms, you just want to use a BooleanField in your model.
https://docs.djangoproject.com/en/stable/ref/models/fields/#booleanfield
Solution 3:
class PlanYourHouseForm(forms.ModelForm):
class Meta:
model = PlanYourHouse
exclude = ['is_deleted']
widgets = {
'is_anything_required' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),
}