sqlalchemy.exc.ArgumentError
来源:7-1 .管理员登录
szuxxy
2017-08-21
报错如下:
sqlalchemy.exc.ArgumentError: relationship 'adminlog' expects a class or a mapper argument (received: <class 'sqlalchemy.sql.schema.ForeignKey'>)
实体代码如下:
# 管理员 class Admin(db.Model): __tablename__ = "admin" __table_args__ = {"useexisting": True} id = db.Column(db.Integer, primary_key=True) # 编号 name = db.Column(db.String(100), unique=True) # 名称 pwd = db.Column(db.String(100), ) # 密码 role_id = db.Column(db.Integer, db.ForeignKey('role.id')) # 所属角色 is_super = db.Column(db.SmallInteger) # 是否是超级管理员 addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 增加时间 adminlog = db.relationship(db.ForeignKey('AdminLog', backref='admin')) #管理员日志 operlog = db.relationship(db.ForeignKey('OperLog', backref='admin')) #操作日志 def __repr__(self): return "<Admin %r>" % self.id # 管理员登录日志 class AdminLog(db.Model): __tablename__ = "adminlog" __table_args__ = {"useexisting": True} id = db.Column(db.Integer, primary_key=True) # 编号 admin_id = db.Column(db.Integer, db.ForeignKey('admin.id')) # 所属管理员 ip = db.Column(db.String(100)) # 登录IP addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 增加时间 def __repr__(self): return "<AdminLog %r>" % self.id # 操作日志 class OperLog(db.Model): __tablename__ = "OperLog" __table_args__ = {"useexisting": True} id = db.Column(db.Integer, primary_key=True) # 编号 admin_id = db.Column(db.Integer, db.ForeignKey('admin.id')) # 所属管理员 ip = db.Column(db.String(100)) # IP reason = db.Column(db.String(600)) # 原因 addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 增加时间 def __repr__(self): return "<OperLog %r>" % self.id
没有看到哪写的有问题,请老师指教。
写回答
2回答
-
同学,你好,这样指定,修改一下:
adminlogs = db.relationship("Adminlog", backref='admin') # 管理员登录日志外键关系关联 oplogs = db.relationship("Oplog", backref='admin') # 管理员操作日志外键关系关联
122017-08-21 -
rustgopy
2017-08-21
同学,你好,你的Admin模型发一下,外键关联的时候可能有问题
012017-08-21
相似问题