Django CreateView 没有 return HttpResponse 对象

Django CreateView didn't return an HttpResponse object

无法弄清楚为什么 CreateView 不 return HttpResponse。现在,我仅将此视图用于发布(无 GET)。我认为设置 self.success_url 应该足够了(正如您在 def post 中看到的那样)。

class TripCreationView(CreateView):
    form_class = TripCreationForm
    template_name = 'frontend/homepage.html'

    def post(self, request, *args, **kwargs):
        self.success_url = request.POST.get('success_url') or reverse('frontend:homepage')
        super(TripCreationView, self).post(self, request, *args, **kwargs)
    #
    # def form_valid(self, form):
    #     trip = form.save(self.request)
    #     return HttpResponseRedirect(self.success_url)

    def get_form_kwargs(self):
        kwargs = super(TripCreationView, self).get_form_kwargs()
        kwargs['user'] = self.request.user
        return kwargs

你知道该怎么做吗?

您忘记了 return 语句。

def post(self, request, *args, **kwargs):
    self.success_url = request.POST.get('success_url') or reverse('frontend:homepage')
    return super(TripCreationView, self).post(self, request, *args, **kwargs)