请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

sqlalchemy.exc.ArgumentError

报错如下:

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')  # 管理员操作日志外键关系关联


1 回复 有任何疑惑可以回复我~
  • 提问者 szuxxy #1
    谢谢老师,原来是外键关联的代码写混了。
    回复 有任何疑惑可以回复我~ 2017-08-21 10:33:23
  • rustgopy 回复 提问者 szuxxy #2
    加油!
    回复 有任何疑惑可以回复我~ 2017-08-21 10:39:48
rustgopy 2017-08-21 10:06:42

同学,你好,你的Admin模型发一下,外键关联的时候可能有问题

0 回复 有任何疑惑可以回复我~
  • 提问者 szuxxy #1
    老师,已经修改了上面的代码了。
    回复 有任何疑惑可以回复我~ 2017-08-21 10:15:18
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号