2011-02-17 1 views
1

비 커 캐시를 SQLAlchemy와 함께 사용하려고하는데 오류가 발생했습니다.비커 캐시 및 SQLAlchemy 작업

다음은 나의 테이블 정의입니다.

class Post(Base): 
    .... 
    .... 

    user = relation(User, primaryjoin = User.id == id) 
    tags = relation('Tags', backref = 'posts') 


class Tags(Base): 
    ... 
    ... 

    user = relation(User, primaryjoin = User.id == id) 
    post = relation(Post, primaryjoin = Post.id == id) 

비커 캐시는 이들을 제외한 다른 SQLAlchemy 클래스와 함께 작동합니다.

프로그램을 실행할 때 다음 오류가 발생합니다.

DetachedInstanceError: Parent instance <Post at 0x101f90b10> is not bound to a Session; lazy load operation of attribute 'user' cannot proceed. 

I에 유래에 검색 한 및

user = relation(User, primaryjoin = User.id == id) 

user = relation(User, primaryjoin = User.id == id, lazy='dynamic') 

그러나이

에 내가 라인을 변경했습니다 내가 게으른 로딩을 중지해야 다른 스레드에서 발견 템플릿에서 다음 오류가 발생할 때 ( post.user.fullname);

AttributeError: 'AppenderQuery' object has no attribute 'fullname' 

내가 뭘 잘못하고 있니?

답변

2

캐시에서 개체를 가져올 때 해당 개체를 세션 개체 (예 :

obj_from_cache = get_from_cache(key) 
session.merge(obj_from_cache)