2016-10-31 186 views
2

我想知道,什麼時候應該使用serializer.is_valid(raise_exception=True)?如果我沒有執行任何自定義驗證,那麼是否需要使用raise_exeption=True標誌?如果我的API不會提高ValidationErrors,這是不好的做法?如果是,那麼爲什麼默認?我只是想知道是否應該將其設置爲True。謝謝你的建議。django休息框架。 raise_exception = True

+1

如果您想要中斷執行流並在其他位置捕獲驗證,則應使用raise_exception = True。否則,你應該使用如果序列化器(is_valid):do_something()else:do_something_else() – domandinho

回答

2

通常驗證串行器,當我們做這樣的事

if not serializer.is_valid(): raise ValidationError(serializer.errors) RESTAPI捕獲該異常並返回400響應與列表或字典的形式提供的錯誤。 寫上面的代碼中的清潔方法是

serializer.is_valid(raise_exception=True)

的時間

80%,你也會想,除非你需要處理的代碼串的錯誤使用raise_exception =真,而不是簡單地告訴用戶自己輸入是錯的。