烧瓶,棉花糖-嵌套字段存在问题

时间:2020-02-09 02:39:08

标签: python flask-sqlalchemy marshmallow flask-marshmallow

我有2个具有“一对一”关系的表。

当我从一个表中获取数据时,我想包括相关表中的一个字段,但没有“点符号”。

有效方法:

class UserEntitySchema(db_schema.Schema):
    class Meta:
        fields = ('id', 'username', 'email', 'confirmed', 'created', 'enabled', 'account.status')

我希望“ account.status”会像“ status”一样出现,但我不知道如何获得它。

我按照@marke的建议尝试了Pluck,但没有任何结果。这里有什么问题吗?

class AccountEntitySchema(db_schema.Schema):
    current_status = fields.Str()
    class Meta:
        fields =('current_status',)

class UserEntitySchema(db_schema.Schema):
    status = fields.Pluck(AccountSchema, 'current_status')
    class Meta:
        fields = ('id', 'username', 'email', 'status')

我更新的有效解决方案(感谢@marke!)

class AccountEntitySchema(db_schema.Schema):
    class Meta:
        fields =('current_status',)

class UserEntitySchema(db_schema.Schema):
    account = fields.Pluck(AccountSchema, 'current_status', data_key='status') #<==== data_key will replace the existing field
    class Meta:
        # Fields to expose
        fields = ('id', 'username', 'email', 'account')

1 个答案:

答案 0 :(得分:1)