Example #1
0
    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
Example #2
0
    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

        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()