我的映射类中有一个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'
。我做错了什么?
答案 0 :(得分:0)
在handle_keywords()
中,您可能希望这样做:
Keyword.search(db, 'name')
(我不确定你在Flask的上下文中从哪里获取db;这只是我对CouchDB-Python源代码的阅读,这是Flask-CouchDB在封面下使用的内容。)