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 のコンテキストでどこから db を取得するかはわかりません。これは、Flask-CouchDB がカバーの下で使用する CouchDB-Python ソースを読んだだけです。)

于 2013-05-20T09:26:19.120 に答える