MCPcopy
hub / github.com/django/django / validate

Method validate

django/db/models/fields/related.py:1207–1229  ·  view source on GitHub ↗
(self, value, model_instance)

Source from the content-addressed store, hash-verified

1205 return self.foreign_related_fields[0]
1206
1207 def validate(self, value, model_instance):
1208 if self.remote_field.parent_link:
1209 return
1210 super().validate(value, model_instance)
1211 if value is None:
1212 return
1213
1214 using = router.db_for_read(self.remote_field.model, instance=model_instance)
1215 qs = self.remote_field.model._base_manager.using(using).filter(
1216 **{self.remote_field.field_name: value}
1217 )
1218 qs = qs.complex_filter(self.get_limit_choices_to())
1219 if not qs.exists():
1220 raise exceptions.ValidationError(
1221 self.error_messages["invalid"],
1222 code="invalid",
1223 params={
1224 "model": self.remote_field.model._meta.verbose_name,
1225 "pk": value,
1226 "field": self.remote_field.field_name,
1227 "value": value,
1228 }, # 'pk' is included for backwards compatibility
1229 )
1230
1231 def resolve_related_fields(self):
1232 related_fields = super().resolve_related_fields()

Callers

nothing calls this directly

Calls 6

complex_filterMethod · 0.80
db_for_readMethod · 0.45
filterMethod · 0.45
usingMethod · 0.45
get_limit_choices_toMethod · 0.45
existsMethod · 0.45

Tested by

no test coverage detected