title: Django: How do I perform a CreateView redirect properly?
body: <p>To perform a redirect I do <code>return redirect([...])</code>. However, that only works, if I additionally do <code>def get_success_url(self):</code>. The url in it actually doesn't matter, as it is using the redirect of my <code>def form_valid(self, form):</code>. Do you know how to avoid the <code>get_success_url</code>?</p>
  
  <p>I also tested to just move the return from <code>form_valid</code> to <code>get_success_url</code>. But then I receive an error that return is missing.  </p>
  
  <pre><code>class AdminRewardCreate(AdminPermissionRequiredMixin, SuccessMessageMixin, FormValidationMixin, AdminBaseRewardView, CreateView):
      form_class = RewardForm
      template_name = 'rewards/admin/create.html'
      success_message = _("Reward has been successfully created.")
  
      def form_valid(self, form):
          instance = form.save(commit=False)
          instance.event = self.request.event
          # when the super method is called the instance
          # is saved because it's a model form
          super().form_valid(form)
          return redirect(
              'rewards:admin:index',
              self.request.organizer.slug,
              self.request.event.slug
          )
  
      def get_success_url(self):
          return reverse(
              'rewards:admin:index',
              kwargs={
                  'organizer': self.request.organizer.slug,
                  'event': self.request.event.slug,
              }
          )
  </code></pre>