def checkPayloadFieldType(value, field, strCountsAsUnicode=False):
if field.mayBeNone and value is None:
return True
ft = field.type
vt = type(value)
if ft in (bool, int, float, types.NoneType):
return vt is ft
elif ft is unicode:
return (vt is unicode or
(strCountsAsUnicode and vt is str) or
(value is None and field.mayBeNone))
elif ft is list:
if vt is not list:
return False
if field.listType is unicode and strCountsAsUnicode:
return all([isinstance(x, basestring) for x in value])
else:
return all([type(x) is field.listType for x in value])
return False
评论列表
文章目录