def add_reply(topicid,u): try: content = request.get_json()['content'] except: make_response("no reply content", 400) try: topic = TopicModel.objects(id=topicid)[0] except: return make_response("no such topic", 400) #解析content pattern = re.compile(r'@\w+') usernames = [] + re.findall(pattern, content) print usernames receivers = set([topic.author]) for name in usernames: try: receivers.add(UserModel.objects(username=name[1:])[0]) except: pass #@了一个没有的人 reply = Reply() reply.sender = u reply.topic = topic reply.receivers = list(receivers) reply.content = content reply.save() topic.updateLastEditedTime() topic.save() for receiver in receivers: receiver.unreadReplies_count += 1 receiver.save() return make_response("update complete", 200)