gpt4 book ai didi

django - 不允许在 Django 中发布的方法

转载 作者:行者123 更新时间:2023-12-04 14:41:20 25 4
gpt4 key购买 nike

当我尝试在我的应用程序中添加 post 方法时,它会显示以下消息:
不允许的方法(发布):HTTP/1.1 405 0
View .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 %}
网址.py
urlpatterns =[
url(r'^admin/', admin.site.urls),
url(r'add_team/$', AddTeamView.as_view(), name='add-team-view'),
]
设置.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
表格.py
from django import forms


class TeamForm(forms.Form):
name = forms.CharField(label='اسم الفريق')
details = forms.CharField(label='تفاصيل الفريق')
有人可以帮忙吗?

最佳答案

就像 Daniel Roseman 的评论所说,您需要在 View 中添加一个 post 方法。当您提交填好的表单时,来自浏览器的 HTTP 请求是 POST,而不是 GET。

查看 Django documentation有关如何组织基本类 View 的示例,就像您尝试使用 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})

关于django - 不允许在 Django 中发布的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com