from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.utils.module_loading import import_string


def get_custom_form(form_setting):
    """Return custom form class if defined and available"""
    try:
        return import_string(getattr(settings, form_setting))
    except ImportError as e:
        raise ImproperlyConfigured(
            "%s refers to a form '%s' that is not available"
            % (form_setting, getattr(settings, form_setting))
        ) from e
