gpt4 book ai didi

django - Django中的 "post"方法

转载 作者:行者123 更新时间:2023-12-03 04:40:36 26 4
gpt4 key购买 nike

我创建了三个文件:

2-view.py:

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

1-forms.py:

class TeamForm(forms.Form):
name = forms.CharField( max_length='100')
details = forms.CharField(max_length='250')

3-add_team.html:

-这里有另一个名为“base.html”的文件

{% extends 'base.html' %}
{% block title %}
add team
{% endblock %}

{% block content %}

<form action="/add_team/" method="post">

{% csrf_token %}
{{ form }}

<input type="submit" value="Submit">

</form>

{% endblock %}

我转到cmd并输入服务器“python manage.py runserver”

它出现在浏览器上:

“此页面无法正常工作如果问题仍然存在,请联系网站所有者。HTTP 错误 405"

最佳答案

如果存在相应的方法, View 可以支持诸如 GETPOSTPUT 等方法,因此 View 应该有 .get(..).post(..).put(..) 等.函数。

这里您只实现了 def get(self, request),因此不允许 POST 请求。

根据您显示的数据,这看起来像是 CreateView [Django-doc] 的典型用例。 。这些 View 的想法是封装常见场景,以便通过覆盖一些属性,创建一个针对特定情况定制的 View ,例如:

class AddTeamView(<b>CreateView</b>):
form_class = TeamForm
template_name = 'add_team.html'
success_url = '/some/success_url'

TeamForm 可能应该是 ModelForm,或者至少是一个 Form,您可以在其中重写 .save(..) 函数将数据正确保存到数据库,因为现在,表单没有执行任何操作(它接收数据,但在验证后,它会将其丢弃)。

如果您不想重定向到 success_url,您可能需要重写 form_valid(..) 函数。此外,从给定的 View 名称延迟解析 success_url 是很常见的,例如:

class AddTeamView(CreateView):
form_class = TeamForm
template_name = 'add_team.html'
success_url = <b>reverse_lazy('view_name')</b>

关于django - Django中的 "post"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52425527/

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