2

我正在从 djangoproject https://docs.djangoproject.com/en/1.5/intro/tutorial04/学习 Django 。

-目前我在本教程的第 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/

基数为 10 的 int() 的无效文字:''

请帮助解决这个问题........因为我完全是这个框架的新手。我使用 MySql 作为我的 DBMS。这就是我的 urls.py 的样子:

    从 django.conf.urls 导入模式,url

    从民意调查导入意见

    urlpatterns = 模式('',
        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')
    )

提前致谢

4

4 回答 4

4

根据文档更改您的 url 模式以捕获 pk 元素。Django urls 可以捕获命名组,因此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'),
)
于 2013-08-03T12:47:56.697 回答
2

您需要检查模板中的 URL。您需要将整数 id 传递给 URL {{user.id}},因为 url 需要在模板中具有整数值。

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

希望这对其他人有用。

于 2014-04-18T04:09:26.750 回答
0

我也有这个错误。

我的情况是,我的表单模板中有错字。仔细检查投票详细信息模板(“polls/detail.html”)是否有错别字。

于 2014-04-17T23:36:51.837 回答
-1

simply replace

poll = get_object_or_404(Poll, pk=poll_id)

with

poll = get_object_or_404(Poll, pk=int(poll_id))
于 2013-08-03T14:43:34.910 回答