У меня странная ситуация, у меня есть ответ dict / json, который я хочу загрузить в схему модели и сохранить. но странно, что не удалось сохранить данные с ошибкой -> строковый аргумент без кодировки. (хотя он закодирован)
это моя модель
class ExampleModel(db.Model):
__tablename__ = "example_table"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Binary)
def save_to_db(self) -> None:
db.session.add(self)
db.session.commit()
это моя схема
class ExampleSchema(ma.ModelSchema):
class Meta:
model = ExampleModel
load_only = ("title", "content")
dump_only = ("id", "title", "content")
вот как я конвертирую его в двоичный файл
data = request.form.to_dict()
if 'content' in data:
data['content'] = data['content'].encode('utf8')
это мой json резонанс или дикт перед загрузкой
data = {'content': b'content21sdfasdfasdfs sadfasdfasdf sadfasdfsf', 'title': 'title1'}
вот как я загружаю его в схему и пытаюсь сохранить.
example_schema = ExampleSchema()
loaded_data = example_schema.load(data)
loaded_data.save_to_db()
Я получаю ошибку, подобную этой, во время сохранения ...
sqlalchemy.exc.StatementError: (builtins.TypeError) string argument without an encoding [SQL: INSERT INTO ......
, когда я пытался отладить его с помощью pycharm, я заметил, что после загрузки схемы двоичное содержимое было преобразовано в строку.
Я застрял здесь, будем благодарны за помощь ...