class ProfileSchema(Schema):
id = fields.Integer()
first_name = fields.String(required=True)
last_name = fields.String()
phone = fields.Str()
email = fields.Email()
gender = fields.String()
city = fields.Str()
state = fields.Str()
country = fields.Str()
age = fields.Int()
id_proof = fields.Str()
id_number = fields.Str()
id_kyc_url = fields.Str()
image_url = fields.Str()
profile_type = fields.Str()
country_code = fields.String()
@validates('gender')
def validate_gender(self, value):
"""
validates gender
:param value:
:return:
"""
if value not in genders:
raise ValidationError('Incorrect gender value it should be either Male or Female')
@post_load
def make_profile(self, data):
"""
make profile obj
:param data:
:return:
"""
return Profile(**data)
在上面的模式中,我使用post_load将dict转换为一个对象。有没有办法不使用后加载装饰器来获得这个?在
如果我没弄错的话,你遇到的问题不是后加载装饰器,而是维护两个对象定义的冗余。如果是这样,您可以使用namedtuple或{a2}来实现您想要的。您仍然可以在模式上定义post_load方法,但不再需要维护第二个类定义。在
命名双解
数据类解决方案
^{pr2}$相关问题 更多 >
编程相关推荐