(self, value, model_instance)
| 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() |
nothing calls this directly
no test coverage detected