0
我試圖篩選誰的用戶:Django的查詢過濾器
- 適合我的喜好
- 其偏好適合我
- 隨機
- 聊天頁面上的最後一個5秒
- 排除自己
的問題是,有時有沒有用戶在最近5秒內打開。在這種情況下,我想從查詢中刪除它,因爲它會將我的列表索引超出範圍並拋出錯誤。
因此,我首先定義了我的異常子句,然後希望如果try:塊不會引發indexError,它將被重寫。這不會發生,它仍然會拋出錯誤。我如何避免錯誤?
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]
在任何查詢中都沒有任何內容會引發IndexError。它一定是從別的地方來的;請提供完整的追溯。 –
你是對的!這沒有給我indexError。 all_users [0]給了我錯誤。如果我把all_users [0]放在塊中,它就可以工作。謝謝! –