【发布时间】:2014-10-31 23:50:53
【问题描述】:
我正在 Flask 中构建一个涉及一些 SQLAlchemy 的 Web 应用程序。我有一个函数“get_team()”让我发疯。
def get_team(玩家列表) cond = and_(*[Team.users.contains(p) for p in playerlist ]) q = Team.query.filter(cond) ...我不断收到错误消息:“AttributeError: 'unicode' object has no attribute '_sa_instance_state'”。模型如下所示:
班级团队(db.Model): __tablename__ = '团队' id = db.Column(db.Integer, primary_key=True) users = association_proxy("user_associations", "user", creator=lambda u: Teaming(user=u)) def __repr__(self): s = "" 为你在 self.users 中: s = s + u.username + ", " return "团队 {tid}: {users_string}".format(tid = self.id, users_string=s) 班组(db.Model): __tablename__ = '合作' team_id = db.Column(db.Integer, db.ForeignKey('teams.id'), primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True) user = db.relationship("用户", backref="team_associations") team = db.relationship("团队", backref="user_associations") def __repr__(self): return "".format(uid = self.user_id, tid = self.team_id) 类用户(UserMixin,db.Model): __tablename__ = '用户' id = db.Column(db.Integer, primary_key=True) 电子邮件 = db.Column(db.String(64),唯一 = True,索引 = True) 用户名 = db.Column(db.String(64),唯一 = True,索引 = True) password_hash = db.Column(db.String(128)) 确认 = db.Column(db.Boolean, default=False) 团队 = 关联代理(“团队关联”,“团队”,创建者 = lambda t:团队(团队 = t))任何方向将不胜感激!
【问题讨论】:
标签: python sql flask sqlalchemy