0

我的映射类中有一个 ViewField。

class Keyword(Document):
    doc_type = 'keyword'

    content=TextField()
    search =  ViewField(
        'docs', "function(doc) {\
            if(doc.doc_type == 'keyword') {\
                if(doc.content == content) {\
                    emit(doc.id, doc);
                }\
            }\
        }"
    )

在我的蓝图中,我想遍历具有特定内容的所有关键字。

blueprint = Blueprint('keywords', __name__)

@blueprint.route('/keywords')
def handle_keywords():
    for keyword in Keyword.search['name']:
        print keyword

我的 app.py 设置。

app = Flask(__name__)
app.register_blueprint(keywords.blueprint)

manager = CouchDBManager()
manager.setup(app)

manager.add_document(Keyword)
server = Server()

manager.sync(app) 

但我得到一个错误Keyword doesn't have attribute 'search'。我究竟做错了什么?

4

1 回答 1

0

handle_keywords()中,您可能想要这样做:

Keyword.search(db, 'name')

(我不确定您在 Flask 的上下文中从哪里获得数据库;这只是来自我对 CouchDB-Python 源代码的阅读,这是 Flask-CouchDB 在幕后使用的。)

于 2013-05-20T09:26:19.120 回答