2013-08-03 183 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}}/ 

希望这会对其他人有效。

相关问题