2016-04-21 25 views
2

我有一個例外,這使我的錯誤,從形式像::Python的驗證錯誤的對象不是JSON序列化

except ValidationError as e: 
    return JsonResponse(e, safe=False) 

據giveing我的錯誤 ValidationError({'age': [u'This field is required.'], 'name': [u'This field is required.']}) is not JSON serializable

爲什麼我得到這個錯誤,我怎麼能使它工作..任何想法?

+1

?請嘗試顯示[mcve] – Sayse

+0

@Sayse我張貼從窗體ajax,所以我想發送錯誤作爲迴應.. – gamer

+1

不知道你爲什麼 - - 我。但Sayse的觀點仍然有效。表單將驗證錯誤收集到一個錯誤列表中,這就是你應該序列化。在任何情況下,都不要從表單方法中返回響應。 –

回答

1

您的eValidationError的一個實例,而不是dict。爲了訪問您可以使用.message_dict屬性信息的詳細信息:如果您使用的是形式,那麼爲什麼不讓形式辦理確認爲正常

return JsonResponse(e.message_dict, safe=False) 
+0

這是給我錯誤'字典對象不可調用' – gamer

+0

感謝人..工作就像一個魅力..一個問題..我也試過這個'#response = serializers.serialize('json',e) \t \t \t return JsonResponse(response,safe = False)'爲什麼它沒有工作。它應該序列化這個權利? – gamer

+0

再一次,你的'e'變量是不可序列化的。所以不,這是正常的行爲。 – Selcuk

相關問題