Django-TemplateView和POST [英] Django - TemplateView and POST

查看:134
本文介绍了Django-TemplateView和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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆