def get_resolver(cls):
        if cls._resolver:
            return cls._resolver

        pats = []
        for rule in Rule.on_site.all():
            view = redirect_to
            params = {}

            if rule.target_view:
                view = rule.target_view
            if rule.target_params:
                params = dict(
                    QueryDict(rule.target_params, mutable=True).items())
            if rule.target_url_name:
                params = {'url': reverse(rule.target_url_name, kwargs=params)}
            if rule.target_url:
                params = {'url': rule.target_url}
            if rule.redirection_type:
                params['status_code'] = rule.redirection_type

            pats.append((r'^%s$' % rule.pattern, view, params))

        urlpatterns = patterns('', *pats)
        resolver = RegexURLResolver(r'^/', urlpatterns)
        resolver.app_name = 'redirector'
        cls._resolver = resolver
        return resolver
    def get_resolver(cls):
        if cls._resolver:
            return cls._resolver

        pats = []
        for rule in Rule.on_site.all():
            view = redirect_to
            params = {}

            if rule.target_view:
                view = rule.target_view
            if rule.target_params:
                params = dict(QueryDict(rule.target_params, mutable=True).items())
            if rule.target_url_name:
                params = {'url': reverse(rule.target_url_name, kwargs=params)}
            if rule.target_url:
                params = {'url': rule.target_url}
            if rule.redirection_type:
                params['status_code'] = rule.redirection_type

            pats.append((r'^%s$' % rule.pattern, view, params))

        urlpatterns = patterns('', *pats)
        resolver = RegexURLResolver(r'^/', urlpatterns)
        resolver.app_name = 'redirector'
        cls._resolver = resolver
        return resolver