在视图中:
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中:
在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
ruddra.. 8
正如我在代码中看到的那样,对于两个视图都使用相同的URL,因此,每当您点击URL时/
,请求将转到第一个视图(IndexView),该视图可能没有任何post方法.更改article_add
视图的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/
正如我在代码中看到的那样,对于两个视图都使用相同的URL,因此,每当您点击URL时/
,请求将转到第一个视图(IndexView),该视图可能没有任何post方法.更改article_add
视图的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/