Django之querySet如何解析使用

django中为了获取某一列数据库的值,比如获取某个用户的密码:

pswd = user.filter(name__exact=name).values('password')

执行之后返回的结果是:

<QuerySet [{'password': u'123456'}]>

希望把value(123456)解析出来
使用了model_to_dict方法,

    pswd = user.filter(name__exact=name).values('password')
    pswd = model_to_dict(user)

会报错:

  Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\handlers\exception.py", line 41, in inner
    response = get_response(request)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "E:\personal\study\Python\projects\django_demo\booktest\views.py", line 110, in userLoginSubmit
    pswd = model_to_dict(user,pswd)
  File "C:\Python27\lib\site-packages\django\forms\models.py", line 87, in model_to_dict
    opts = instance._meta
AttributeError: 'UserInfoManager' object has no attribute '_meta'

求各位大神指导!!!

阅读 9.4k
2 个回答

<QuerySet [{'password': u'123456'}]>很明显是一个查询集,你可以通过for遍历读出来,就像这样:

men=autohost.objects.filter(autoTime__gte=btime)
    for line in men:
        line_dict['categories'].append(line.autoTime.strftime('%Y-%m-%d %H:%M'))
        line_dict['bad'].append(line.mencached)
    print line_dict......

model_to_dict只能把一条查询记录转化成字典,比如objects.get()得到的结果可以应用该方法,all()方法得到的是个列表,需要遍历后才能应用该方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题