不允许的方法:/(Django发布方法)

时间:2019-03-17 18:37:34

标签: django django-forms django-views django-2.1

提交表单时,控制台上显示“不允许使用方法:/”。

类似的东西: 不允许的方法:/ [17 / Mar / 2019 18:31:18]“ POST / HTTP / 1.1” 405


我正在views.py文件上使用它。

class UrlAccpt(View):

    template_name='phc/url_accpt.html'

    def get(self,request):
        urlx=''
        form = UrlForm(request.POST)
        if request.method == 'POST':
            form = UrlForm(request.POST)
            if form.is_valid():
                urlx= form.cleaned_data['EnterTheUrl']

        form = UrlForm(request.POST)

    response = TemplateResponse(request,self.template_name,{'form':form,'value':urlx})
    return response

以及在forms.py文件中...我使用此代码

from django import forms


class UrlForm(forms.Form):

    EnterTheUrl=forms.CharField(max_length=1000)

2 个答案:

答案 0 :(得分:1)

基于类的视图不能以这种方式工作。您必须为要覆盖的每种http方法类型定义一个方法(至少在您只是从View继承的情况下)。因此,在基于类的视图中为这样的帖子定义一个方法,它将起作用

class UrlAccpt(View):

    template_name='phc/url_accpt.html'

    def get(self,request):
        urlx=''
        form = UrlForm()

   def post(self,request, *args, **kwargs):
        form = UrlForm(request.POST)
        if form.is_valid():
            urlx= form.cleaned_data['EnterTheUrl']

您可以在this文档

支持其他HTTP方法中阅读有关内容。

答案 1 :(得分:0)

欢迎使用基于类的视图:

您需要在课堂上指定发布功能。获取功能仅在GET方法上触发,而不用于POST请求。

添加以下功能并将您的帖子逻辑移到此处...

def post:
   ...

看看docs