django如何获取QuerySet的值

大王叫我来巡山 发布于 2012/06/29 12:10
阅读 7K+
收藏 0

例如这样的:

 

retA = UserShow_list.objects.filter(user_id = u_id)

 

upid = retA.show_pic

 

这样提示

'QuerySet' object has no attribute 'show_pic'
加载中
0
北落
北落
查看下model里边对应的有没有
show_pic
大王叫我来巡山
大王叫我来巡山
只不过不能以这种形式访问 QuerySet里的对象.
大王叫我来巡山
大王叫我来巡山
有的,我看过的。
0
judezhan
judezhan

filter出来是个QuerySet,可以看成是一个列表之类的容器,并不是真正的对象,你要取容器里的单条数据,然后对单个对象调用Model里面的方法。你可以把filter换成get试试看,但是要保证符合条件的对象只有一个,通过get得到的是真的对象,可以直接调用Model里定义的方法。

文档 https://docs.djangoproject.com/en/1.4/ref/models/querysets/

0
shensuoyao
shensuoyao
filter查询的结果是一个 QuerySet,如果你想获得某一条记录的话,可以用get方法,但是get方法有一个问题,就是,如果按条件get在数据库中没有找到记录的话,会报Exception,在你无法确定数据库中一定存在某条记录的时候,get不要去用它,get一般通过pk(主键)去查询数据。  按照你的查询,可以使用 retA = UserShow_list.objects.filter(user_id = u_id)[0]这样获得,这里也有一个问题,最好是先判断 UserShow_list.objects.filter(user_id = u_id)是否为空,否则的话会抛 out of range Exception
0
上越
上越
支持2楼
返回顶部
顶部