问题描述
def insert_category(a,b,c,d,content_to_write):
response_content = []
if content_to_write:
response_content.extend(content_to_write)
for x in b:
write_back_content = {}
write_back_content = {"category_path": "a","name": "b","status" : "Successful","err_desc" : "-" }
form_category = {"pid": "0","name": "Library" }
category_exists = db.collection.find_one({"_id":a})
if some_cond:
write_back_content["status"] = "Failed"
write_back_content["err_desc"] = "Duplicate Category"
response_content.append(write_back_content)
continue
elif some_other_cond:
write_back_content["status"] = "Failed"
write_back_content["err_desc"] = "Invalid pid i.e category path"
response_content.append(write_back_content)
continue
insert_status = db.collections.insert(form_category)
if not insert_status:
write_back_content["status"] = "Failed"
write_back_content["err_desc"] = "Unable to create category"
response_content.append(write_back_content)
continue
else:
c[map_some_id] = insert_status
response_content.append(write_back_content)
insert_category(a,content_to_write=response_content)
logger.info("RESPONSE CONTENT {}".format(response_content))
return response_content
我在这里面临的当前问题是日志行“RESPONSE CONTENT”不知何故丢失了最后附加的信息,例如:如果 response_content 中有 4 个插入,当我调用此函数时,返回响应只有 3 个插入。最后一个不见了。此外,奇怪的是,日志打印了 4 次而不是一次,因为它在 for 循环之外。知道我哪里出错了吗?
解决方法
好吧,经过很长时间的调试,我意识到这个错误很愚蠢。该函数返回一些数据。所以我没有存储返回内容。所以有效的解决方案是response_content = insert_category(args)。