Flask sqla, получите сериализатор для обратных данных - PullRequest
0 голосов
/ 10 января 2020

У меня есть модель

class ProductAttribute(sqla.Model, ExtendMixin, PoliciesMixin):
    __tablename__ = 'product_attributes'
    __policy__ = ProductAttributePolicy

    # Basic fields
    id = sqla.Column(sqla.Integer, primary_key=True)
    .....
    # bk
    product_attributes_values = sqla.relationship(
        'ProductAttributeValue',
        backref='product_attribute')

эта таблица (ProductAttributeValue) имеет обратную ссылку на таблицу ProductAttribute

class ProductAttributeValue(sqla.Model,
                            ExtendMixin):
    __tablename__ = 'product_attributes_values'

    id = sqla.Column(sqla.Integer, primary_key=True)
    ....

   # fk
product_attribute_id = sqla.Column(
    sqla.Integer,
    sqla.ForeignKey('product_attributes.id'))

я хочу вывод json как этот

{
"id": 1,
"values": [
{"id": 1},
{"id": 2}
]
}

значения - данные из ProductAttributeValue

, поэтому у меня есть такой сериализатор

 _get_product_attributes = Model('__ProductAttributeValue|GET (ProductAttributeValue)', {
        'id': fields.Integer,
    })


get = Model('ProductAttribute|GET', {
        'id': fields.Integer,
        'values': fields.List(fields.Nested(_get_product_attributes))
    }, mask='id,values')

, но когда я делаю запрос GET, мой values равен null

{ "id": 1, "values": null}

в БД все записи существуют. Мне не ясно, как я могу вывести список данных backref

...