我正在尝试通过我的django应用中的id获取数据。问题是我不知道用户点击的id类型。我尝试在我的视图中添加以下代码,但我收到此错误:
ValueError at /findme/
invalid literal for int() with base 10: 'id'
Request Method: GET
Request URL: http://127.0.0.1:8000/findme/
Django Version: 1.4
Exception Type: ValueError
Exception Value: invalid literal for int() with base 10: 'id'
Exception Location: C:\Python27\lib\site-packages\django\db\models\fields\__init__.py in get_prep_value, line 537
Python Executable: C:\Python27\python.exe
Python Version: 2.7.3
浏览
from meebapp.models import Meekme
def cribdetail(request):
post=Meekme.objects.get(id='id')
return render_to_response('postdetail.html',{'post':post, 'Meekme':Meekme},context_instance=RequestContext(request))
我错过了什么?
答案 0 :(得分:4)
问题是'id'
是一个字符串,你需要在这里传递一个整数:
post=Meekme.objects.get(id='id')
它应该看起来像这样:
def cribdetail(request, meekme_id):
post=Meekme.objects.get(id=meekme_id)
return render_to_response('postdetail.html',{'post':post, 'Meekme':Meekme},context_instance=RequestContext(request))
其中meekme_id
是一个整数,是URL的一部分。您的URL配置应包含:
url(r'^example/(?P<meekme_id>\d+)/$', 'example.views.cribdetail'),
当您访问example/3/
时,这意味着Django将调用视图cribdetail
,并将值3分配给meekme_id
。有关更多详细信息,请参阅Django URL documentation。
答案 1 :(得分:1)
错误消息是'id'是整数 但是你正在传递字符串。