title: RedirectView and url reverse with optional args
body: <p>Short: i'm trying to do a simple redirect view to a third party app provided named url, with optional parameters</p>
  
  <p>Third party view url ( from provider.oauth2 package ) is registered like this</p>
  
  <pre><code>url('^authorize/?$',login_required(Capture.as_view()), name='capture'),
  </code></pre>
  
  <p>I've imported this urlconf in namespace='oauth2'
  In my view this works fine:</p>
  
  <pre><code>class RedirectToCapture(RedirectView):
      pattern_name = 'oauth2:capture'
  
      def get_redirect_url(self, *args, **kwargs):
          return super(RedirectToCapture,self).get_redirect_url(*args,**kwargs)
  </code></pre>
  
  <p>This will fail to reverse() url because there are no optional parameters defined in the urlpattern above</p>
  
  <pre><code>class RedirectToCapture(RedirectView):
      pattern_name = 'oauth2:capture'
  
      def get_redirect_url(self, *args, **kwargs):
          kwargs['response_type'] = 'code'
          return super(RedirectToCapture,self).get_redirect_url(*args,**kwargs)
  </code></pre>
  
  <p>This hack works</p>
  
  <pre><code>class RedirectToCapture(RedirectView):
      pattern_name = 'oauth2:capture'
      query_string = True
  
      def get_redirect_url(self, *args, **kwargs):
          self.request.META['QUERY_STRING'] = urlencode({'response_type' :'code')
          return super(RedirectToCapture,self).get_redirect_url(*args,**kwargs)
  </code></pre>
  
  <p>This is super ugly. Another way, doing reverse() myself and omitting pattern_name</p>
  
  <pre><code>class RedirectToCapture(RedirectView):
      def get_redirect_url(self, *args, **kwargs):
          self.url = reverse('oauth2:capture') + '?' + urlencode({'response_type' :'code' })
          return super(RedirectToCapture,self).get_redirect_url(*args,**kwargs)
  </code></pre>
  
  <p>Is this the cleanest way ? 
  Touching either args or kwargs in any way causes reverse() to stop matching</p>
  
  <p>PS: And yes i want to use a class based view here derived from RedirectView for multiple unrelated reasons. I know i can simply do http.HttpResponseRedirect(url)</p>