, http://docs.sqlalchemy.org/en/rel_0_9/orm/relationships.html 모든 것이 잘 작동해야하지만 오류가 호출되는 어떤 이유로 secondaryjoin 및 primaryjoin 필요영약 SQLAlchemy의는 다 대다 관계, SQLAlchemy의 워드 프로세서에서
원래 예외는 아니었다 : 부모 사이에 조인 조건을 결정할 수 없음/관계에 대한 하위 테이블 User.rank_r. 'primaryjoin'표현식을 지정하십시오. 'secondary'가 있으면 'secondaryjoin'도 필요합니다.
class User(db.Model, UserMixin):
__tablename__ = 'users'
rank_r = db.relationship('Rank',
secondary=ranks,
backref=db.backref('users', lazy='dynamic'))
class Rank(db.Model):
__tablename__ = 'rank'
id = Column(db.Integer, primary_key=True)
name = Column(db.String(STRING_LEN), nullable=False, unique=True)
ranks = db.Table('ranks',
db.Column('rank_id', db.Integer, db.ForeignKey('rank.id')),
db.Column('user_id', db.Integer, db.ForeignKey('users.id'))
)
기본적으로 나는이 작업을 수행하려고 :
SELECT u.id, u.name, r.name users u INNER JOIN ranks r ON r.id=rr.rank_id INNER JOIN rank rr ON rr.user_id==u.id
이 같은 반환이 관계 코드는 실패 할 것
1 Bob Major
2 Joey Captain
3 Adam Brigadier General
을 :
rank_r = db.relationship('Rank',
primaryjoin="(rank.c.id==ranks.c.rank_id)",
secondary="ranks",
secondaryjoin="(id==ranks.c.user_id)",
backref=db.backref('users', lazy='dynamic'))
오류 :
StatementError : mapper Mapper | User | users ... (원래 원인 : UnmappedColumnError : 열 rank.id가 매퍼 Mapper | User | users ...에 구성되어 있지 않습니다.) 'SELECT rank .id AS rank_id, rank.name AS rank_name \ nFROM 순위, 순위, 사용자 \ n 여기에는 무엇이 있습니까? = ranks.rank_id AND users.id = ranks.user_id '[immutabledict ({})]
템플릿에서 "User.rank_r"을 호출하려고 할 때 표시되는 내용입니다.
- 일대 다 스키마뿐만 아니라 다 대다 테이블이 필요합니까? – Doobeh
나는 네가 옳다고 생각했는데, 선장은 전공이 될 수 없다. 다른 한편으로는, 더 많은 모듈/영역을 가질 수있는 시스템에 대해 생각하고있었습니다. 즉, 한 모듈에서는 선장이되고 다른 모듈에서는 메이저가 될 수 있습니다. – Dexter