python eve hook,当满足条件时我该如何不保存这个文件?

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'] 
+1

但是,修改正在迭代的结构并不是一个好主意;在这种情况下,所有后续元素的索引都减1。你可以通过建立一个要删除的索引列表来缓解这个问题,最后从最高处开始删除它们。 '为我在反向(索引):del docs [i]' – holdenweb

+0

是的,你是正确的,将修复 –

+0

@holdenweb PO使用简单的逻辑,所以我重写答案,谢谢你的评论 –

@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?''' 

感谢您的评论。