У меня две модели: ArticleModel
и TagModel
и May-To-Many
отношения между ними. Я использую marshmallow
для [де] сериализации.
Я хочу обновить или создать экземпляр ArticleModel
, и я хочу получить от front-end
следующие данные
{
'title': 'article',
'tags': [1, 2, 4] // ids of TagModel instances
}
Я решил
схемы
class ArticlePutPostSchema(Schema):
tags = fields.List(fields.String())
вид
def post(self):
json_data = request.get_json()
data = ArticlePutPostSchema().load(data=json_data, partial=True)
data["tags"] = list(
TagModel.query.filter(TagModel.id.in_(data["tags"]))
)
article = ArticleModel(**data)
db.session.add(article)
db.session.commit()
return jsonify(), 200
Но я думаю, что это плохой путь.
Также я попытался применить поле Pluck
Pluck(TagSchema, 'id', many=True)
И получил [{'id': 1, 'id': 2, 'id': 4}]
.
Это тоже плохой способ.
Как решить?