С Pymongo, как мне вставить данные из формы в базу данных? - PullRequest
1 голос
/ 25 января 2012

Я пытаюсь сделать что-то вроде этого:

info = ([request.form['author'], request.form['title'], request.form['text']])  
mongo.db.posts.insert(info, safe=True)

но я получаю TypeError: объект 'unicode' не поддерживает назначение элементов.

Это последняя строка в трассировке стека:

if not "_id" in son:
    son["_id"] = ObjectId()
    return son

1 Ответ

0 голосов
/ 25 января 2012

При использовании Pymongo ваш документ должен быть диктовым, а не списочным.

Попробуйте:

info = {"author": request.form['author'], "title": request.form['title'], "text": request.form['text']}

или:

info = {"info": [request.form['author'], request.form['title'], request.form['text']]}

, что ближе к вашей идеемодели.


На самом деле такого рода ошибки задокументированы для методов сбора save () и update (), но не для вставки ():

Поднимает TypeError, еслиto_save не является экземпляром dict.

Документы коллекции Pymongo

...