The Python Oracle

How to insert a checkbox in a django form

--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Puzzle Game 5

--

Chapters
00:00 How To Insert A Checkbox In A Django Form
00:22 Answer 1 Score 7
00:36 Accepted Answer Score 79
01:14 Answer 3 Score 5
01:22 Thank you

--

Full question
https://stackoverflow.com/questions/6195...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#python #django #djangoforms

#avk47



ACCEPTED ANSWER

Score 79


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.




ANSWER 2

Score 7


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




ANSWER 3

Score 5


class PlanYourHouseForm(forms.ModelForm):

    class Meta:
        model = PlanYourHouse
        exclude = ['is_deleted'] 
        widgets = {
            'is_anything_required' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),   
        }