Flask marshmallow удалить ключ из вложенного dict

У меня такая схема:

class PublisherSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        fields = ('name',)
        model = Publisher


class JournalSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        fields = ('title', 'publisher')
        model = Journal
        ordered = True

    publisher = ma.Nested(PublisherSchema)

Когда я сбрасываю JournalSchema, я хочу, чтобы результат был:

{
  "title": "hello",
  "publisher: "bye"
}

Но сейчас он сбрасывается как:

{
  "title": "hello",
  "publisher": {
    "name": "bye"
  }
}

Как я могу вложить значение издателя, но не отображать ключ?


person Casey    schedule 16.06.2021    source источник


Ответы (1)


Собственно разобрался. Способ сделать это:

class JournalSchema(ma.SQLAlchemyAutoSchema):
    publisher = fields.String(attribute="publisher.name")

    class Meta:
        fields = ('title', 'publisher')
        model = Journal
        ordered = True

При этом считается, что «издатель» - это отношение модели, на которую имеется ссылка.

person Casey    schedule 16.06.2021