def traverse_dot_path(self, traverser):
        #CONSIDER if there is a value then return an exacto schema field
        if traverser.remaining_paths:
            name = traverser.next_part
            value = traverser.current_value
            next_value = field = None

            if value:
                try:
                    next_value = value[name]
                except KeyError:
                    pass

                if hasattr(value, '_meta') and hasattr(value._meta, 'fields') and name in value._meta.fields:
                    field = value._meta.fields[name]

            traverser.next(field=field, value=next_value)
        else:
            if traverser.current_value:
                traverser.end(field=SchemaField(schema=type(traverser.current_value)))
            else:
                traverser.end(field=self)
dataset/ETHPy150Open zbyte64/django-dockit/dockit/schema/fields.py/GenericSchemaField.traverse_dot_path/original