【发布时间】:2019-12-14 03:14:59
【问题描述】:
我想根据现有条目与用户传递的内容之间的差异来更新表中的条目。
例如:
通过了什么:
users: [
{"id": 1, "email": "email1@gmail.com"},
{"id": 2, "email": "email2@gmail.com"}
]
以及已经存在的:
user_playground = UserPlaygroundModel.query.filter_by(playground=playground).all()
# This will be a list of UserPlayground objects
user_playground = [
{id=1, playground=sandbox},
{id=3, playground=sandbox}
]
所以这意味着 1 留在表中,2 将被添加,3 将被删除。
我想输出传递的内容和已经存在的内容之间的差异,然后根据该差异更改条目。
users_to_add = {id=2, "email": "email2@gmail.com"}
users_to_delete = {id=3}
有更好的方法吗?
【问题讨论】:
-
这两者的期望输出是什么?添加 2 删除 3 是什么意思
-
我认为他希望基于用户的
ids 和 user_playground 之间的 AND 操作来保留 user_playground 的输出 -
那么,您有一个由用户传递的列表 (
a),还有一个来自数据库 (b) 的列表? -
set([1,2])-set([1,3])给出{2}(添加),set([1,3])-set([1,2])给出{3}(删除),set([1,3]) & set([1,2])给出{1}(留下) -
@Artog 是的。我根据与用户具有一对多关系的游乐场名称查询数据库。然后我尝试删除未通过的用户并添加之前不存在的用户。
标签: python python-3.x flask