2013-08-03 181 views
2

我正在從djangoproject https://docs.djangoproject.com/en/1.5/intro/tutorial04/學習Django。Django - ValueError:無效文字爲int()與基10:''

- 目前我在本教程的第4部分。

然而,是否顯示錯誤而從數據庫表Poll取出一個記錄爲:

def detail(request, poll_id): 
    poll = get_object_or_404(Poll, pk=poll_id) 
    context = {'poll' : poll} 
    return render(request,'polls/detail.html', context) 

它顯示一個錯誤:

ValueError at /polls/2/ 

無效字面對於int()與基體10: ''

請幫忙解決這個問題........因爲我完全是這個框架的新手。 我使用MySql作爲我的DBMS。 這是我的urls.py看起來像:

 

    from django.conf.urls import patterns, url 

    from polls import views 

    urlpatterns = patterns('', 
     url(r'^$', views.index, name='index'), 
     url(r'^(?P)\d+/$', views.detail, name='detail'), 
     url(r'^(?P)\d+/results/$', views.results, name='results'), 
     url(r'^(?P)\d+/vote/$', views.vote, name='vote') 
    ) 

由於提前

+0

請添加你的urls.py –

+0

嘗試將'poll_id'強制轉換爲'int' –

+0

@ am1ty9d9v:是的我試過了......但沒有運氣 – dotslash

回答

4

更改您的網址模式來捕捉每個文檔的PK元素。 Django的URL可以捕獲命名組,因此poll_id

urlpatterns = patterns('', 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), 
    url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(), name='results'), 
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), 
) 
+0

::謝謝,但它顯示一個錯誤** TypeError在/民意調查/ 20/ detail()得到了一個意外的關鍵字參數'pk'** ...當我替換名爲「poll_id」與'pk'組 – dotslash

+0

感謝它現在的工作... – dotslash

-1

只需更換

poll = get_object_or_404(Poll, pk=poll_id) 

poll = get_object_or_404(Poll, pk=int(poll_id)) 
0

我也有這種錯誤。

我的情況它我的表單模板中有一個錯字。仔細檢查輪詢詳情模板(「polls/detail.html」)是否有錯別字。

1

您需要檢查模板中的網址。 您需要將整數ID傳遞到URL {{user.id}},因爲url需要在模板中具有整數值。

Ex. url:- /polls/{{user.id}}/ 

希望這會對其他人有效。

相關問題