使用自定义实例化的对象的可选漏勺字段 class
Optional Colander Field for object instantiated using custom class
我想使使用漏勺制作的模型中的某些字段成为可选字段。
我熟悉使用 missing=colander.drop
但这仅在定义 SchemaNode 时有效。
如果该字段是使用自定义 class 定义的,比如 customeClass = CustomClass()
,如何将其设为可选?
以下是片段:
import colander
class Image(colander.MappingSchema):
url = colander.SchemaNode(colander.String())
width = colander.SchemaNode(colander.Int())
height = colander.SchemaNode(colander.Int())
class Post(colander.MappingSchema):
id = colander.SchemaNode(colander.Int())
text = colander.SchemaNode(colander.String())
score = colander.SchemaNode(colander.Int())
created_time = colander.SchemaNode(colander.Int())
attachedImage = Image() # I want to make this as optional
为了使自定义 Class 对象成为可选对象,我们可以传递相同的 missing=colander.drop
作为构造函数参数。
示例:
import colander
class Image(colander.MappingSchema):
url = colander.SchemaNode(colander.String())
width = colander.SchemaNode(colander.Int())
height = colander.SchemaNode(colander.Int())
class Post(colander.MappingSchema):
id = colander.SchemaNode(colander.Int())
text = colander.SchemaNode(colander.String())
score = colander.SchemaNode(colander.Int())
created_time = colander.SchemaNode(colander.Int())
attachedImage = Image(missing=colander.drop) # The difference
我想使使用漏勺制作的模型中的某些字段成为可选字段。
我熟悉使用 missing=colander.drop
但这仅在定义 SchemaNode 时有效。
如果该字段是使用自定义 class 定义的,比如 customeClass = CustomClass()
,如何将其设为可选?
以下是片段:
import colander
class Image(colander.MappingSchema):
url = colander.SchemaNode(colander.String())
width = colander.SchemaNode(colander.Int())
height = colander.SchemaNode(colander.Int())
class Post(colander.MappingSchema):
id = colander.SchemaNode(colander.Int())
text = colander.SchemaNode(colander.String())
score = colander.SchemaNode(colander.Int())
created_time = colander.SchemaNode(colander.Int())
attachedImage = Image() # I want to make this as optional
为了使自定义 Class 对象成为可选对象,我们可以传递相同的 missing=colander.drop
作为构造函数参数。
示例:
import colander
class Image(colander.MappingSchema):
url = colander.SchemaNode(colander.String())
width = colander.SchemaNode(colander.Int())
height = colander.SchemaNode(colander.Int())
class Post(colander.MappingSchema):
id = colander.SchemaNode(colander.Int())
text = colander.SchemaNode(colander.String())
score = colander.SchemaNode(colander.Int())
created_time = colander.SchemaNode(colander.Int())
attachedImage = Image(missing=colander.drop) # The difference