gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:35:11 28 4
gpt4 key购买 nike

我正在从官方 Django 教程学习 Django。当我从表格中投票时,我收到了这个错误。这是由 - 可能 - views.py 下的投票功能引起的

这是我的 views.py/vote 函数:

def vote(request,poll_id):
p=get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
return render_to_response('polls/detail.html', {'poll':p,
'error_message' : "didint select anything ",}, context_instance= RequestContext(request))

else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse('polls.views.results', args=(p.id,)))

这是错误消息屏幕:

**ValueError at /polls/2/vote/

invalid literal for int() with base 10: 'on'**

Request Method: POST Request URL: 127.0.0.1:8000/polls/2/vote/

Django Version: 1.4 Exception Type: ValueError Exception Value: invalid literal for int() with base 10: 'on' Exception Location: /usr/local/lib/python2.7/dist-packages/django/db/models/fields/init.py in get_prep_value, line 537

这是我的 polls/urls.py :

from django.conf.urls import patterns, include, url

urlpatterns = patterns('polls.views',

    url(r'^$', 'index'),
url(r'^(?P<poll_id>\d+)/$','detail'),
url(r'^(?P<poll_id>\d+)/results/$','results'),
url(r'^(?P<poll_id>\d+)/vote/$','vote'),

)

这里是 project/urls.py :

from django.conf.urls import patterns, include, url

urlpatterns = patterns('polls.views',

    url(r'^$', 'index'),
url(r'^(?P<poll_id>\d+)/$','detail'),
url(r'^(?P<poll_id>\d+)/results/$','results'),
url(r'^(?P<poll_id>\d+)/vote/$','vote'),

)

最佳答案

当您尝试将字符串转换为整数时,您会收到此错误,但该字符串实际上并不包含任何数字:

number = int(string)

从您的代码中,我在三个地方看到了整数的使用和可能的转换。当 p=get_object_or_404(Poll, pk=poll_id) 时,我们假设您已正确传入整数作为 poll_id。您能否发布您正在使用的与此 View 关联的 urlpattern 和示例 URL?

您还假设 request.POST['choice'] 将是一个整数并且可以这样转换。您没有捕捉到与此相关的异常,因此您需要检查此条目的值是什么。我会为这部分添加一些其他检查:

if request.method=="POST":
choice = request.POST.get('choice', None)
if choice is not None:
selected_choice = p.choice_set.get(pk=choice)
...

这两个最突出。

请发布您的 urlpattern 和更多您收到的错误消息(例如哪一行引发了您的异常)。

关于python - 基数为 10 的 int() 无效文字 : 'on' Python-Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387424/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com