flask_marshmallow предотвращает загрузку новых объектов, но позволяет загружать существующие - PullRequest
0 голосов
/ 23 февраля 2019

Схемы зефира имеют опцию dump_only, которая предотвращает десериализацию объектов в этом атрибуте во время события load.

Например:

class UserSerializationSchema(ma.ModelSchema):
    class Meta:
        model = User

    messages = fields.Nested(MessageSerializationSchema, dump_only=True)

Мы хотим, чтобы зефир загружал ormобъекты в этих полях, если они уже существуют, но мы НЕ хотим разрешать создание новых объектов путем десериализации.Flask-marshmallow загружает существующие объекты, не создавая новых, например, следующая команда, когда запускается load, создаст нового пользователя с указанным email и свяжет его с существующим сообщением с uid 1:

{ 
    'email': 'email@email.com',
    'messages': {
        'uid': 1
    }
  }

К сожалению, вышеуказанная функциональность не работает, когда dump_only имеет значение True на поле.Можно ли сказать зефиру разрешить связываться с существующими объектами, но не создавать новые объекты путем десериализации?

...