2014-04-08 2 views
0

플라시보 및 whooshalchemy를 사용하여 간단한 웹 응용 프로그램에서 전체 텍스트 검색을 구현합니다. 포스트 및 사용자 모델은 다음과 같이 정의된다 :whooshalchemy 인덱싱이 다시 참조로 변경됩니까?

나는 현재 사용자가 포스트

post = Post.query.get(pid) 
if current_user != post.author: 
    abort(403) 
어떤 이유로 current_user를 들어

post.author을 편집 할 수 있는지 여부를 검사를 수행하는 몇 가지 관점에서

class Post(db.Model): 
    __searchable__ = ['body'] 
    id = db.Column(db.Integer, primary_key=True) 
    body = db.Column(db.Text) 
    author_id = db.Column(db.Integer, db.ForeignKey('user.id')) 

class User(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    posts = db.relationship('Post', backref='author', lazy='dynamic') 

whooshalchemy.whoosh_index(app, Post) 

이 동일하지 whooshalchemy.whoosh_index(app, Post)이 호출되면 개체가 호출됩니다. 그 줄을 주석으로 처리하면 게시물 소유권 테스트가 예상대로 작동합니다.

왜 이런 일이 발생합니까? whooshalchemy 색인 생성은 user 테이블에서로드 된 것과 다른 복사본 post.author을 생성합니까? 문제를 해결하려면 어떻게해야합니까?

답변

0

공식적인 whooshalchemy 버그가 있습니다 - 미구엘은 그것을 here 덮었습니다. 고정 된 버전 here을 사용하면 문제가 해결됩니다.