def add_question(): mongoengine.connect('Words', host='mongodb://localhost/Words') if (not request.data) or (not 'tags' in request.data) or (not 'word' in request.data) or ( not 'answer' in request.data): abort(400) tagList = [] data = json.loads(request.get_data()) content = data['word'].encode('utf8') answer = data['answer'].encode('utf8') for index in data['tags']: #todo:gets_or_create getTag = Tags.objects(id=index['id']) if 0 == len(getTag): addedTag = Tags(name=index['name'].encode('utf8'), date=datetime.datetime.now).save() tagList.append(Tag(id=addedTag.id, name=addedTag.name, date=addedTag.date)) else: tagList.append(Tag(id=getTag[0].id, name=getTag[0].name, date=getTag[0].date)) questionItem = Question() questionItem.word = content questionItem.answer = answer questionItem.tags = tagList questionItem.save() js = Question.objects().to_json() resp = Response(js, status=200, mimetype='application/json', charset='utf-8') return resp