SQLAlchemy로 매핑을 정의하고 있는데 한 가지를 제외하고는 거의 완료되었습니다. 나는 '자원'객체와 여러 속성을 가진 연관 테이블 '관계'와 2 개의 자원 사이의 관계를 가지고있다. 내가 지금까지 거의 성공적으로 해왔 던 것은 자원 객체에 2 개의 속성을 제공하는 것입니다. 부모와 자식은 연관 테이블에 저장된 트리를 탐색합니다. 두 속성 사이의 관계는 잠시 동안 만 지속되므로 시작 날짜와 종료 날짜가 있습니다. 한 번에 하나의 리소스 만 다른 리소스의 부모가 될 수 있습니다.SQLAlchemy - 연결 테이블 및 기본 조인의 날짜가
내 문제는 하나의 관계를 만료시키고 새 관계를 만들면 부모 속성이 새로 고쳐지지 않는다는 것입니다. 리소스의 부모 속성에 대한 primaryjoin에 문제가 있을지도 모릅니다.
resource_table = model.tables['resource']
relation_table = model.tables['resource_relation']
mapper(Resource, resource_table,
properties = {
'type' : relation(ResourceType,lazy = False),
'groups' : relation(Group,
secondary = model.tables['resource_group'],
backref = 'resources'),
'parent' : relation(Relation, uselist=False,
primaryjoin = and_(
relation_table.c.res_id == resource_table.c.res_id,
relation_table.c.end_date > func.now())),
'children' : relation(Relation,
primaryjoin = and_(
relation_table.c.parent_id == resource_table.c.res_id,
relation_table.c.end_date > func.now()))
}
)
mapper(Relation, relation_table,
properties = {
'resource' : relation(Resource,
primaryjoin = (relation_table.c.res_id == resource_table.c.res_id)),
'parent' : relation(Resource,
primaryjoin = (relation_table.c.parent_id == resource_table.c.res_id))
}
)
oldrelation = resource.parent
oldrelation.end_date = datetime.today()
relation = self.createRelation(parent, resource)
# Here the relation object has not replaced oldrelation in the resource object
어떤 생각 : 여기
몇 가지 코드?감사합니다,
리처드 로페스
잠재적 인 도우미가 가로 스크롤 막대를 사용하지 않도록하십시오. o) –
예. 이제 더 좋아 보인다. 감사 ;-). –