изменить структуру сериализованных данных в (flask -) зефире - PullRequest
0 голосов
/ 05 марта 2020

У меня есть бэкэнд со следующей моделью данных (упрощенный пример данных):

class Offer(db.Model):
   __tablename__ = "offers_table"
   id = db.Column(db.Integer, primary_key=True)
   offer_id = db.Column(db.String(40), unique=True)
   offer_name = db.Column(db.String(80))
   option_a = db.Column(db.String(80))
   option_b = db.Column(db.String(80))
   option_c = db.Column(db.String(80))

class OfferSchema(marshmallow.ModelSchema):
   id = field_for(Offer, 'id', load_only=True)

   class Meta:
      unknown = EXCLUDE
      model = Offer
      include_fk = True

моему веб-приложению нужны данные в другой (вложенной) структуре, например:

{
   id: foo,
   offer_id: bar,
   offer_name: lorem,
   options: {
      a: option_data,
      b: option_data,
      c: option_data
   }
}

Как определить выходной формат в flask -marshmallow? По причинам я предпочел бы решение без «опций» как отдельную сущность (через отношения). Мне также необходимо десериализовать входящие данные (которые также будут вложенными).

В документации я нашел только примеры для вложенных схем со связями.

Любая помощь очень важна! Спасибо и всего наилучшего Саймон

...