2016-01-29 101 views
1

我使用REST框架的令牌認證爲我的API調用。最近,我發現一個問題,如果在請求中提供的令牌是無效的,而不是返回Invalid Token響應,Django的拋出TypeError at /api/users/: 'exceptions.KeyError' object is not callableREST框架:類型錯誤:「exceptions.KeyError」對象不是無效令牌

我檢查了跟蹤,發現這一點: 在Django/DB /模型/ query.py(Django的版本= 1.7)文件號線357,內部提升DoesNotExists異常調用,通過self.model._meta.object_name引發實際的異常TypeError

if num == 1: 
     return clone._result_cache[0] 
    if not num: 
     raise self.model.DoesNotExist(
      "%s matching query does not exist." % 
      self.model._meta.object_name) 

有誰知道爲什麼模型的OBJECT_NAME成爲exception.KeyError而非Token

回答

0

奇怪的是,我得到這個,當我有這個線在我的代碼:

except KeyError, models.MyModel.DoesNotExist: 

在逗號被解釋爲「是」,重新定義models.MyModel.DoesNotExist作爲KeyError異常,造成「exception.KeyError不可調用「時創建一個。

我的意思做的是:

except (KeyError, models.MyModel.DoesNotExist): 
相關問題