我有一個類似的問題,因爲這個問題對串行外部驗證在Django的REST框架數據:使用ParseError Django的REST框架返回無效數據
Raise Validation Error In Pre_Save Using Django Rest Framework
我的代碼:
def pre_save(self, obj):
data = self.request.DATA['users']
for user in data:
if not user in allowed_users:
raise ParseError('An unpermitted user has been included')
從跟蹤看來它試圖發送響應,但它失敗:
「」需要爲fi值在這種多對多關係可以被使用之前。
UPDATE:
我感動提高ParseError成get_serializer_class()方法,像這樣:
def get_serializer_class(self):
if 'users' in self.request.DATA:
# make sure the users are allowed
data = self.request.DATA['users']
for user in data:
if not user in allowed_users:
raise ParseError(detail='Unpermitted user')
return serializer
這引發異常,但是,它並沒有使用REST框架的JSON響應返回它。相反,我得到的Django堆棧跟蹤和500錯誤,這是不好的。
謝謝!
感謝您的提示卡爾頓。看起來這個問題更多地與Browsable API有關。 – dolphinkickme 2014-09-03 21:30:41