У меня есть 2 таблицы с отношением «один к одному».
Когда я получаю данные из одной таблицы, я хочу включить одно поле из связанной таблицы, но без «точечной нотации».
Что работает:
class UserEntitySchema(db_schema.Schema):
class Meta:
fields = ('id', 'username', 'email', 'confirmed', 'created', 'enabled', 'account.status')
Я хочу, чтобы "account.status" был просто "статусом", но я не могу понять, как его получить.
Я попробовал Pluck, как предложил @marke, но безрезультатно. Здесь что-то не так?
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')