我正在使用pymongo和flask将有关某个人拥有的桌面的信息从数据库放到表格的网页上。很简单。但我有一个按钮,应该使用$ pull从数据库中删除桌面。
mongo文档如下所示:
{
"_id" : ObjectId("55c4a89a80071a0ef20e4df1"),
"Hostname" : "XXXXXXXXX",
"BUILD OS" : "WINDOWS 7 ENTERPRISE",
"Current User" : "CAMPELK",
"Primary User" : "CAMPELK",
"Location" : "XXXXX",
"Model" : "vmware inc. vmware virtual platform",
"BUILD Version Full" : "5.1.00.00",
"BUILD Version" : 5.1,
}
(由于工作场所规则,我不得不审查一些数据)
桌面模型的名称从下拉菜单表单返回为如下字符串:
@app.route('/contact_desktop', methods=['GET', 'POST'])
def contact2():
form1= name_search()
name = form1.name.data
choices = DI.make_dictionary()
form2 = ContactFormDesktop()
models = DI.return_model(name)
if request.method == 'POST':
DI.remove_give_back_desktop(models, form2.choose_desktop.data, name)
return render_template('thanks.html', thing = "desktop")
remove_give_back_desktop()方法应该删除与表单返回的模型字符串匹配的字段:
def return_model(name):
models = list()
for entry in db.names.find({}):
model = entry["models"]
models.append(model)
return models
def remove_give_back_desktop(model1, model2, name):
for entry in model1:
if entry == model2:
db.desktops.update_one({"Current User":name, "Model": entry},{"$unset":{"Model":""}})
然而,当我单击html页面中的按钮时没有发生任何事情,没有抛出任何错误,否则代码运行正常,但是应该删除的字段仍然存在。
当我手动插入名称和模型时,更新$ unset方法在mongo终端中工作,因此我的语法对于pymongo是错误的还是有更深层次的问题?
谢谢!