Django 可選 checkbox 的正確設定方式


使用 Modelform 的話,建立一個可選的 checkbox 還真要小心
例如 opt-in 類,“Check the box if you do not want to be contacted by us"
Model:

#model.py
class UserProfile(models.Model):
    opt_in = models.BooleanField()

ModelForm:

#model.py
class UserProfileForm( ModelForm ):
    #https://docs.djangoproject.com/en/dev/ref/forms/fields/#booleanfield
    opt_in = forms.BooleanField(
        required=False)

問題是,“required" 令人很容易覺得是 true
因為無論 true false 都不是 null...
但 django 的設定剛好相反

反正很多有 ORM 的 framework 都有這種混亂的情況
例如 cakephp, django
是我的問題還是?

Google