IndexError:列表索引超出范围,Django [英] IndexError: list index out of range, Django

查看:74
本文介绍了IndexError:列表索引超出范围,Django的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

def homepage(request):
    if request.user.is_authenticated():
        # get authenticated rfuser
        rfuser = RFUser.objects.filter(user=request.user)[0]
        print rfuser
        # show info of current user
        project_list = rfuser.project_set.all().order_by('project_name')
#       project_list = RFUser.objects.filter(user=request.user).order_by('project_name')
        context_dict = {'projects': project_list}
        return render(request, 'homepage.html', context_dict)
    else:
        return render(request, 'homepage.html')

出现以下错误:

Internal Server Error: /
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\handlers\exception.py", line 39, in inner
    response = get_response(request)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 249, in _legacy_get_response
    response = self._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:\rfui_web\myaccoutsite\views.py", line 13, in homepage
    rfuser = RFUser.objects.filter(user=request.user)[0]
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 295, in __getitem__
    return list(qs)[0]
IndexError: list index out of range

列表索引超出范围但无法找到原因,不知道索引是否不是由于数组的相关值

推荐答案

这是因为您的查询返回的是空查询集.并因此返回IndexError:列表索引超出范围如果您想知道查询是否还了东西,请先使用以下命令进行检查:

This is because your query is returning an empty queryset. And thus returning IndexError: list index out of range .If you want o know whether the query gives back something or not first check using:

if RFUser.objects.filter(user=request.user).exists():
     // then do things which you need

这篇关于IndexError:列表索引超出范围,Django的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆