def get_field_by_column_name(self, name): """Get field by column name User can also define different name for each field to save in firestore Check if user specify any different name then get field corresponding to this db_column_name. If no column name is specify for field then just return the same field name Parameters ---------- name : str column name (field name) coming form firestore Raises ------- FieldNotFound: if field not found in model class and model config for `missing_field` is **raise_error** """ for field in self.field_list.values(): if name in [field.name, field.db_column_name]: return field if self.missing_field == 'merge': f = fields.Field() f.name = name return f if self.missing_field == 'ignore': return None if self.missing_field == 'raise_error': raise FieldNotFound( f'Field "{name}" not found in model "{cls.__name__}"')
def get_field(self, name): """Get model field from field list Get field on the base of it's name can be accessible via `_meta` like this **cls._meta.get_field(name)** Parameters --------- name: Field name Returns ------ Model field Raises ------ FieldNotFound: If field not found in model """ if name in self.field_list: return self.field_list[name] raise FieldNotFound(f'Field "{name}" not found in model "{cls.__name__}"')