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

时间:2013-08-03 12:29:14

标签: django django-models django-views

我正在从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的样子:


    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')
    )

先谢谢

4 个答案:

答案 0 :(得分:4)

根据文档更改您的网址格式以捕获pk元素。 Django网址可以捕获命名组,因此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'),
)

答案 1 :(得分:2)

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

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

希望这对其他人有用。

答案 2 :(得分:0)

我也有这个错误。

我的情况是我的表格模板中有拼写错误。请仔细检查投票明细模板(“polls / detail.html”)是否存在拼写错误。

答案 3 :(得分:-1)

简单地替换

poll = get_object_or_404(Poll, pk=poll_id)

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