def is_field_allowed(name, field_filter=None):
    """
        Check is field name is eligible for being split.

        For example, '__str__' is not, but 'related__field' is.
    """
    if field_filter in ["year", "month", "week", "day", "hour", "minute", "second"]:
        return False
    return isinstance(name, str) and not name.startswith('__') and not name.endswith('__') and '__' in name