How to set True as default value for BooleanField on Django?

Bin Chen picture Bin Chen · Mar 4, 2011 · Viewed 163k times · Source

I am using BooleanField in Django.

By default, the checkbox generated by it is unchecked state. I want the state to be checked by default. How do I do that?

Answer

Michael C. O'Connor picture Michael C. O'Connor · Mar 4, 2011

If you're just using a vanilla form (not a ModelForm), you can set a Field initial value ( https://docs.djangoproject.com/en/2.2/ref/forms/fields/#django.forms.Field.initial ) like

class MyForm(forms.Form):
    my_field = forms.BooleanField(initial=True)

If you're using a ModelForm, you can set a default value on the model field ( https://docs.djangoproject.com/en/2.2/ref/models/fields/#default ), which will apply to the resulting ModelForm, like

class MyModel(models.Model):
    my_field = models.BooleanField(default=True)

Finally, if you want to dynamically choose at runtime whether or not your field will be selected by default, you can use the initial parameter to the form when you initialize it:

form = MyForm(initial={'my_field':True})