MCPcopy
hub / github.com/django/django / BooleanField

Class BooleanField

django/db/models/fields/__init__.py:1200–1243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1198
1199
1200class BooleanField(Field):
1201 empty_strings_allowed = False
1202 default_error_messages = {
1203 "invalid": _("“%(value)s” value must be either True or False."),
1204 "invalid_nullable": _("“%(value)s” value must be either True, False, or None."),
1205 }
1206 description = _("Boolean (Either True or False)")
1207
1208 def get_internal_type(self):
1209 return "BooleanField"
1210
1211 def to_python(self, value):
1212 if self.null and value in self.empty_values:
1213 return None
1214 if value in (True, False):
1215 # 1/0 are equal to True/False. bool() converts former to latter.
1216 return bool(value)
1217 if value in ("t", "True", "1"):
1218 return True
1219 if value in ("f", "False", "0"):
1220 return False
1221 raise exceptions.ValidationError(
1222 self.error_messages["invalid_nullable" if self.null else "invalid"],
1223 code="invalid",
1224 params={"value": value},
1225 )
1226
1227 def get_prep_value(self, value):
1228 value = super().get_prep_value(value)
1229 if value is None:
1230 return None
1231 return self.to_python(value)
1232
1233 def formfield(self, **kwargs):
1234 if self.choices is not None:
1235 include_blank = not (self.has_default() or "initial" in kwargs)
1236 defaults = {"choices": self.get_choices(include_blank=include_blank)}
1237 else:
1238 form_class = forms.NullBooleanField if self.null else forms.BooleanField
1239 # In HTML checkboxes, 'required' means "must be checked" which is
1240 # different from the choices case ("must select some value").
1241 # required=False allows unchecked checkboxes.
1242 defaults = {"form_class": form_class, "required": False}
1243 return super().formfield(**{**defaults, **kwargs})
1244
1245
1246class CharField(Field):

Callers 15

BoolAndClass · 0.90
BoolOrClass · 0.90
IsEmptyClass · 0.90
IsValidClass · 0.90
output_fieldMethod · 0.90
validateMethod · 0.90
output_fieldMethod · 0.90
test_lookup_rhsMethod · 0.90

Calls

no outgoing calls