1

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

私は何が欠けていますか?

4

2 に答える 2

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 のドキュメントを参照してください。

于 2012-06-29T09:34:49.927 に答える
1

エラーメッセージは「id」が整数であると言っていますが、 string を渡しています。

于 2012-06-29T09:33:15.340 に答える