Python 在Django中按id获取对象

Python 在Django中按id获取对象,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我正试图通过我的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:

我正试图通过我的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
观点


我遗漏了什么?

错误消息说“id”是整数
但是您正在传递字符串。

错误消息说“id”是整数
但是您正在传递字符串。

问题是
'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'),
url(r'^example/(?P\d+/$,'example.views.cribdetail'),

当您访问
example/3/
时,这意味着Django将调用视图
cribdetail
,并将值3分配给
meekme\u id
。有关更多详细信息,请参见Django。

问题在于
'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'),
url(r'^example/(?P\d+/$,'example.views.cribdetail'),

当您访问
example/3/
时,这意味着Django将调用视图
cribdetail
,并将值3分配给
meekme\u id
。有关更多详细信息,请参阅Django。

按照您的说明操作后,我发现以下错误:找不到/search/Reverse中带有参数“()”和关键字参数“{}”的“meebap.views.cribdetail”的NoReverseMatch。Urlconf:url(r'^cribme/(?P\d+)/$,'meebapp.views.cribdetail'),在模型中:def get_absolute_url(self):return('meebapp.views.cribdetail',(),[str(self.id)],在模板中:我缺少什么?@picomon:在这种情况下,您为Django的反向函数提供了不正确的参数。您需要确保用于反转URL的名称和值是正确的,并且确实存在具有该名称和这些参数的URL。我可以在参数中单独输入id吗?顺便说一句:请检查我在上面评论中的编辑。将
get_absolute_url
更改为以下内容:
return('meebap.views.cribdetail',(),{'meekme_id':self.id})
。另外,在模板中,您需要添加id,因此它将是
{%url meebapp.views.cribdetail post.id%}
。另一个错误是:在/search/Reverse处找不到带有参数“(”,)和关键字参数“{}”的“meebapp.views.cribdetail”,在按照您的指示后,我得到了这个错误:找不到参数为“()”且关键字参数为“{}”的'meebapp.views.cribdetail'的/search/Reverse处的NoReverseMatch。Urlconf:url(r'^cribme/(?P\d+)/$,'meebapp.views.cribdetail'),在模型中:def get_absolute_url(self):return('meebapp.views.cribdetail',(),[str(self.id)],在模板中:我缺少什么?@picomon:在这种情况下,您为Django的反向函数提供了不正确的参数。您需要确保用于反转URL的名称和值是正确的,并且确实存在具有该名称和这些参数的URL。我可以在参数中单独输入id吗?顺便说一句:请检查我在上面评论中的编辑。将
get_absolute_url
更改为以下内容:
return('meebap.views.cribdetail',(),{'meekme_id':self.id})
。另外,在模板中您需要添加id,因此它将是
{%url meebapp.views.cribdetail post.id%}
。另一个错误是:在/search/Reverse处找不到带有参数“(”)”和关键字参数“{}”的“meebapp.views.cribdetail”,您必须将id作为整数传递。Simeon只写示例。您必须以整数形式传递id。Simeon只写了一个例子。