不允许使用Django方法(POST)

不允许使用Django方法(POST),django,forms,post,Django,Forms,Post,在以下观点中: 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

在以下观点中:

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>
我在这里试图做的是通过html将url值传递给view,调用函数上载数据库,将用户重定向到与refresh相同的主页,然后新添加的项目将显示出来

不知何故,每次提交时,我都会收到一个空白页,在终端中,我会收到一个错误,上面写着:

Method Not Allowed (POST): /
"POST / HTTP/1.1" 405 0

正如我在代码中看到的,两个视图都使用相同的URL,因此,每当您点击URL
/
,请求都会转到第一个视图(IndexView),该视图可能没有任何post方法。更改
文章添加
视图的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\u address}/article add/

访问视图。您的URL中有一个小错误。py按照以下方式更改您的URL.py

app_name = 'myapp'

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

如果您在主项目url.py中包含“myapp”url.py,那么在html格式中也可以这样放置
action=“{%url”article\u add“%}”
视图。

您能访问
article\u add
视图吗?您使用的是基于功能的视图吗?我想,一旦我创建了一个不同的url,它就可以工作了。谢谢
app_name = 'myapp'

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