Метод не разрешен: / (Метод Джанго-Поста) - PullRequest
0 голосов
/ 17 марта 2019

Когда я отправляю форму, в консоли появляется надпись «Метод не разрешен: /».

Примерно так: Метод не разрешен: / [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 ]

1 голос
/ 17 марта 2019

Представления на основе классов не работают таким образом. Вы должны определить метод для каждого типа метода 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']

Вы можете прочитать об этом в Поддержка других методов HTTP из this doc

0 голосов
/ 17 марта 2019

Добро пожаловать в класс на основе просмотров:

Вам нужно указать функцию почты в вашем классе. Функция Get срабатывает только для метода GET, но не для запроса POST.

Добавьте следующую функцию и переместите свою логику поста сюда ...

def post:
   ...

Посмотрите Документы

...