【问题标题】:Django - ValueError: invalid literal for int() with base 10: ''Django - ValueError: int() 以 10 为基数的无效文字:''
【发布时间】:2013-08-04 16:01:21
【问题描述】:

我正在从 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') )

提前致谢

【问题讨论】:

  • 请添加您的 urls.py
  • 尝试将poll_id 转换为int
  • @am1ty9d9v:是的,我试过了....但没有运气
  • 那么这意味着你没有得到poll_id。尝试在def 行之后添加print poll_id' 语句,以查看poll_id 得到了什么
  • @am1ty9d9v :我得到 poll_id = 20 代替 2 和 10 代替 1....

标签: django django-models django-views


【解决方案1】:

更改您的 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'),
)

【讨论】:

  • :: 谢谢,但它显示错误 TypeError at /polls/20/detail() got an unexpected keyword argument 'pk'...当我替换 @ 987654323@ 命名组与pk
【解决方案2】:

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

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

希望这对其他人有用。

【讨论】:

    【解决方案3】:

    我也有这个错误。

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

    【讨论】:

      【解决方案4】:

      简单替换

      poll = get_object_or_404(Poll, pk=poll_id)
      

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

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2011-07-17
        • 1970-01-01
        • 1970-01-01
        • 2021-11-12
        • 2017-12-06
        • 2018-08-29
        • 1970-01-01
        相关资源
        最近更新 更多