我目前正在扩展Django rest_框架的serializers.WritableField
,以便(毫不奇怪)将数据转换为更前端友好的格式。我的代码如下:
class FooField(serializers.WritableField):
def from_native(self, value):
return #makeFoo
def to_native(self, value):
return #undoFoo
然后我有一个序列化程序,它看起来像这样:
^{pr2}$问题是,from native在validate_之前被调用,而原始数据甚至没有被传递给validate_字段,所以如果垃圾数据被传入(在我的特定情况下,可能是任何不是有效日期的数据),而不是validate_捕捉它的字段,我将返回500个错误。我考虑过这样的事情:
def from_native(self, value):
try:
return #makeFoo
except:
return #a flag to show that the data wasn't valid
但这看起来像是一种处理问题的老套方法,特别是因为Django rest_框架通常非常干净。有没有人知道一种处理垃圾数据的方法,可以很好地与from native一起使用?在
实际上,如果您仔细研究一下DRF代码,就会发现许多扩展
WritableField
的字段都是这样验证的。以DecimalField
为例:相关问题 更多 >
编程相关推荐