python eve hook,当满足条件时我该如何不保存这个文件?
问题描述:
我有这样python eve hook,当满足条件时我该如何不保存这个文件?
def before_insert(docs):
for doc in docs:
if doc['field'] == 'value':
'''Do not save this document'''
app.on_insert_resource_name += before_insert
我应该怎么做,不保存该文档满足条件时,钩子函数?除了使用abort()
.Thanks
答
你可以试试这个解决方案:
def before_insert(docs):
docs = [doc for doc in docs if not doc['field'] == 'value']
答
@holdenweb其实是从数据库获得该值,
for doc in docs:
res = db.collection.find_one ({"field": doc['field']})
if res:
''' do not save this doc,
i tried doc.clear() and del doc here ,but it not work.
what shoud i do?'''
感谢您的评论。
但是,修改正在迭代的结构并不是一个好主意;在这种情况下,所有后续元素的索引都减1。你可以通过建立一个要删除的索引列表来缓解这个问题,最后从最高处开始删除它们。 '为我在反向(索引):del docs [i]' – holdenweb
是的,你是正确的,将修复 –
@holdenweb PO使用简单的逻辑,所以我重写答案,谢谢你的评论 –