Пример #1
0
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