【发布时间】:2020-05-28 14:08:22
【问题描述】:
我有两个模型:ArticleModel 和 TagModel 和 May-To-Many 它们之间的关系。
我使用 marshmallow 进行 [de] 序列化。
我想更新或创建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}]。
这也是一种不好的方式。
如何解决?
【问题讨论】:
-
return jsonify(), 200
标签: python flask serialization flask-sqlalchemy marshmallow