![](/img/trans.png)
[英]django error : NoReverseMatch at /watchlist/ Reverse for 'viewList' with arguments '('',)'
[英]Django NoReverseMatch error, reverse function not work with no arguments
這個NoReverseMatch錯誤讓我發瘋。 我正在使用Django 1.6,並且已經檢查了我的網址,但它不起作用。 請對此進行指導。
我基本上想做一件非常簡單的事情,就是當我提交一個html表單時,我得到了我想要的數據,然后重定向到結果頁面,但這是行不通的...
這是我的index.html文件
<form name="input" action="{% url 'whatspring:sending' %}" method="post">
{% csrf_token %}
Recipient: <input type="text" name="usrname">
<br>
<input type="submit">
</form>
<br>
我的view.py
def index(request):
return render(request,'springsend/index.html')
def sending(request):
var = request.POST['usrname']
doSomethinghere()
return HttpResponseRedirect(reverse('whatspring:results'))
def results(request):
return render(request,'springsend/send_results.html')
然后我的應用程序urls.py
from django.conf.urls import patterns, url
from springsend import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^results/$', views.results, name='results'),
)
和主要的urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^send/', include('springsend.urls', namespace="whatspring")),
)
我試圖研究問題,似乎反向函數無法獲取我想要的反向URL的名稱(即名稱空間“ whatspring”下的“結果”。。。)我缺少一些瑣碎的東西嗎? 請幫助。
您的urls.py
(springsend一個)似乎沒有sending
視圖的url,這可能就是為什么{% url 'whatspring:sending' %}
找不到它的原因。
只需將其更改為
from django.conf.urls import patterns, url
from springsend import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^results/$', views.results, name='results'),
url(r'^sending/$', views.sending, name='sending'), # this line
)
每個可訪問的視圖都需要一個URL。 用戶的瀏覽器需要有一些發送地址。 如果僅將其發送到您的域而不包含url,則Django將無法確定請求哪個url。 Django不會自動生成這些網址(可能很好)。
(用戶本人不需要知道此URL;您無需在任何地方放置任何`鏈接。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.