【发布时间】:2019-02-24 04:03:01
【问题描述】:
我正在使用 Python、Pymongo 和 Flask 做一个简单的食谱项目。我在 MongoDB 中有一个现有的食谱集合。我对其进行了编码,以便我可以单独查看这些食谱并单击一个按钮,该按钮会将食谱保存到我的 saved_recipe 集合中。如果我查看相同的配方并再次保存它,我显然会收到“E11000 重复键错误”,因为集合中已经存在 _id(ObjectId)(见下图)。
我希望在同一屏幕上弹出一个窗口,告诉用户他们已经将该食谱添加到他们的“已保存食谱”文件夹中,或者只是通过渲染一个模板来重定向他们,说明他们已经拥有该食谱,大意是这样。
这可能吗?
我在想一些事情:
if ObjectId == ObjectId
return render_template('error.html')
这是我的代码来帮助解释:
recipe_id = recipes.find_one({"_id": ObjectId(recipe_id)})
savedrecipe.insert_one(recipe_id)
if 'username' in session:
return redirect(url_for('saved_recipes'))
return redirect(url_for('login'))
所以,我在我的数据库的集合中找到了一个特定的 _id。然后我将找到的 id 插入到不同的集合中。如果我尝试将相同的 id 添加到同一个集合中,我会收到“重复错误”。有没有办法找到我上面的 id,然后将其插入我想要的集合中,但为它创建一个新的 id?
【问题讨论】:
标签: python mongodb flask pymongo