Exemple #1
0
            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__}"')
Exemple #2
0
            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__}"')