Метод не разрешен Пост в django - PullRequest
0 голосов
/ 09 сентября 2018

, когда я пытаюсь добавить метод записи в моем приложении, он показывает это сообщение:

Метод не разрешен (Пост): HTTP / 1.1 405 0

Views.py:

class AddTeamView(View):
def get(self, request):
    form = TeamForm()
    context = {'form': form}
    return render(request, 'add_team.html', context)

add_team.html:

{% extends 'base.html' %}
{% block title %}
Add a Team
{% endblock %}
{% block content %}
<form action="/add_team/" method="post">
{% csrf_token %}
<!-- this form content is called from the view.py/context-->
{{ form }}
<input type="submit" value="اضافة "/>
</form>
{% endblock %}

urls.py:

urlpatterns =[
url(r'^admin/', admin.site.urls),
url(r'add_team/$', AddTeamView.as_view(), name='add-team-view'),
]

settings.py:

STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)

forms.py:

from django import forms


class TeamForm(forms.Form):
name = forms.CharField(label='اسم الفريق')
details = forms.CharField(label='تفاصيل الفريق')

Может кто-нибудь помочь плз?

1 Ответ

0 голосов
/ 09 сентября 2018

Как говорится в комментарии Дэниэла Роузмана, вам необходимо добавить метод поста в ваше представление. Когда вы отправляете заполненную форму, HTTP-запрос от вашего браузера - это POST, а не GET.

Ознакомьтесь с документацией Django , чтобы узнать, как организовать базовое представление класса, которое вы пытаетесь использовать с методом post и get.

Вот пример документации, модифицированной для вашего случая:

class AddTeamView(View):
    form_class = TeamForm
    template_name = 'add_team.html'

    # Handle GET HTTP requests
    def get(self, request, *args, **kwargs):
        form = self.form_class(initial=self.initial)
        return render(request, self.template_name, {'form': form})

    # Handle POST GTTP requests
    def post(self, request, *args, **kwargs):
        form = self.form_class(request.POST)
        if form.is_valid():
            # <process form cleaned data>
            return HttpResponseRedirect('/success/')

        return render(request, self.template_name, {'form': form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...