2017-11-14 28 views
0

CreateViewHttpResponseを返さない理由がわかりません。今のところ、このビューは投稿専用です(GETはありません)。私はdef postで見ることができるように、self.success_urlが十分であると思った。Django CreateViewがHttpResponseオブジェクトを返しませんでした

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 

あなたは何をすべきか知っていますか?

+1

あなたはポストブロックでスーパーの前にreturn文を忘れました – Vaibhav

+1

とにかくここで 'post'を上書きしてはいけません。そのロジックは 'get_success_url'メソッドに入ります。 –

+0

ありがとう@DanielRoseman! –

答えて

4

あなたは返信文を忘れました。

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) 
+0

いいえ! :) ありがとうございました... –

関連する問題