gpt4 book ai didi

不允许使用Django方法(POST)

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

在 View 中:

def article_add(request):
print request.user, " is adding an article"
if request.method == "POST":
web_url = request.POST['web_url']
Uploadarticle(web_url)
return redirect('myapp:index')

在html中:
<form class="navbar-form navbar-right" role="form" method="post" action="{% url 'myapp:article_add' %}" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<div class="col-sm-10">
<input id="article_url" name="web_url" type="text">
</div>
</div>
<button type="submit" class="btn btn-default"> + </button>
</form>

在url.py中:
app_name = 'myapp'
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^$', views.article_add, name='article_add'),
]

我在这里要做的是通过html传递url值以查看,调用函数以上传数据库,将用户重定向到与刷新相同的主页,然后将显示新添加的项目。

不知何故,每次提交时,我都会有一个空白页,在终端中,我会出现一个错误:
Method Not Allowed (POST): /
"POST / HTTP/1.1" 405 0

最佳答案

正如我在代码中看到的那样,两个 View 都使用相同的URL,因此,每当您击中URL /时,请求都会转到第一个view(IndexView),后者可能没有任何post方法。更改article_add View 的URL。这样做:

app_name = 'myapp'
urlpatterns = [
url(r'^article-add/$', views.article_add, name='article_add'),
url(r'^$', views.IndexView.as_view(), name='index'),

]

您将能够从URL {host_address}/article-add/访问 View

关于不允许使用Django方法(POST),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464834/

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