Django-TemplateView和POST [英] Django - TemplateView and POST
问题描述
我有一个由TemplateView生成的页面,其中包含POST表单。
如何在TemplateView中使用此表单。
I have a page generated by a TemplateView and containing a POST form. How can I use this form with a TemplateView.
有类似我的代码的示例:
There is an example similar of my code :
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?
So it's normal that the only method is GET but how can I use POST ?
提交表单时出现此错误:
I have this error when I submit the form :
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]
谢谢
推荐答案
对于 generic.TemplateView
,您仅实现了 get
方法。您应该实现 post
方法以允许发布表格,或尝试使用 generic.FormView
For generic.TemplateView
you have only get
method implemented. You should implement post
method to allow post form or try to use generic.FormView
文档中的更多详细信息: https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-editing/
More details in documentation: https://docs.djangoproject.com/en/1.11/topics/class-based-views/generic-editing/
这篇关于Django-TemplateView和POST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!