Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Try:Except的Django查询筛选器:_Python_Django - Fatal编程技术网

Python 使用Try:Except的Django查询筛选器:

Python 使用Try:Except的Django查询筛选器:,python,django,Python,Django,我正在尝试筛选以下用户: 符合我的喜好 我喜欢谁 随便 在聊天页面的最后5秒钟和 排除我自己 问题是,有时在最后5秒钟内没有打开的用户。在本例中,我希望将其从查询中删除,因为它会使我的列表索引超出范围并引发错误 所以我首先定义了我的exception子句,然后希望如果try:块没有抛出索引器,它会被重写。这不会发生,它仍然会抛出错误。如何避免错误 recent_range = datetime.now() - timedelta(seconds=5) all_users = User.objec

我正在尝试筛选以下用户:

  • 符合我的喜好
  • 我喜欢谁
  • 随便
  • 在聊天页面的最后5秒钟和
  • 排除我自己
  • 问题是,有时在最后5秒钟内没有打开的用户。在本例中,我希望将其从查询中删除,因为它会使我的列表索引超出范围并引发错误

    所以我首先定义了我的exception子句,然后希望如果try:块没有抛出索引器,它会被重写。这不会发生,它仍然会抛出错误。如何避免错误

    recent_range = datetime.now() - timedelta(seconds=5)
    all_users = User.objects.filter(gender=user_preference).\
        filter(preference=user_gender).order_by('?').exclude(email=request.user.email)
    try:
        all_users = User.objects.filter(gender=user_preference).\
            filter(preference=user_gender).filter(online=recent_range).\
            order_by('?').exclude(email=request.user.email)
    except IndexError:
        pass
    other_user = all_users[0]
    

    丹尼尔·罗斯曼帮我解决了这个问题。过滤器没有抛出错误。无法对空查询调用索引。如果将其他用户[0]放入块中,它不会抛出错误

    all_users = User.objects.filter(gender=user_preference).\
        filter(preference=user_gender).order_by('?').exclude(email=request.user.email)
    other_user = all_users[0]
    try:
        all_users = User.objects.filter(gender=user_preference).\
            filter(preference=user_gender).filter(online=recent_range).\
            order_by('?').exclude(email=request.user.email)
        other_user = all_users[0]
    except:
        pass
    

    这两个查询中都没有抛出索引器的内容。它一定是从别的地方来的;请提供完整的回溯。你说得对!这并没有给我索引器。所有用户[0]都给了我错误。如果我将all_users[0]放在块中,它就会工作。谢谢