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
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]放在块中,它就会工作。谢谢