def add_field(self, name: str, field: Field): if name in self.fields_map: raise ConfigurationError(f"Field {name} already present in meta") field.model_field_name = name field.model = self._model self.fields_map[name] = field if field.has_db_column: if not field.db_column: field.db_column = name self.field_to_db_column_name_map[name] = field.db_column
def add_field(self, name: str, value: Field) -> None: if name in self.fields_map: raise ConfigurationError(f"Field {name} already present in meta") value.model = self._model self.fields_map[name] = value value.model_field_name = name if value.has_db_field: self.fields_db_projection[name] = value.source_field or name if isinstance(value, ManyToManyFieldInstance): self.m2m_fields.add(name) elif isinstance(value, BackwardOneToOneRelation): self.backward_o2o_fields.add(name) elif isinstance(value, BackwardFKRelation): self.backward_fk_fields.add(name) field_filters = get_filters_for_field( field_name=name, field=value, source_field=value.source_field or name ) self._filters.update(field_filters) self.finalise_fields()