2017-07-01 14 views
0

私はTemplateViewによって生成され、POSTフォームを含むページを持っています。 このフォームをTemplateViewでどのように使用できますか?Django - TemplateViewとPOST

class ProjetMixin(object) : 

    ... 

    def get_context_data(self, **kwargs) : 
     ... 
     return context 


class AView(ProjetMixin, TemplateView): 
    template_name = 'path-to-the-page.html' 

    offre = None 

    def get_context_data(self, **kwargs) : 

     context = super(AView, self).get_context_data(**kwargs) 

     try : 
      self.offre = self.projet.offredeprojet 
     except OffreDeProjet.DoesNotExist : 
      self.offre = None 

     if self.request.user.is_authenticated() :    
       print(" method = ",self.request.method) //display "GET" 
       if self.request.method == "POST" : 
        print("post") 

     context['offre'] = self.offre 

     return context 

だから、それが唯一の方法は、GETが、私はPOST方法を使用することができていることが普通です:

私のコードの同様の例はありますか?

私がフォームを送信するとき、私はこのエラーを持っている:

Method Not Allowed (POST): /projets/pseudoaz/recrutement 
[2017/07/01 11:50:57] HTTP POST /projets/pseudoaz/recrutement 405 [0.06, 127.0.0.1:57560] 

は、あなたが実装のみget方法を持っているあなたのためにgeneric.TemplateView

答えて

2

ありがとうございます。あなたは、投稿フォームを許可またはドキュメントのgeneric.FormView

詳細を使用しようとするpostメソッドを実装する必要があります。https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-editing/

+0

私はTemplateViewでPOSTメソッドを実装することを好むが、私はどのように行うことができますか?現在、私はこれと同じエラーがあります: "def post(self、request):..." – Yass

+0

私は誰ができるかを知っていると思いますが、POSTメソッドからHttpResponseを返すことができる人はいますか? – Yass

+0

それで解決しました、ありがとうございます!さようなら – Yass

関連する問題