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回答

rustgopy

2017-08-21

同学,你好,这样指定,修改一下:

adminlogs = db.relationship("Adminlog", backref='admin')  # 管理员登录日志外键关系关联
oplogs = db.relationship("Oplog", backref='admin')  # 管理员操作日志外键关系关联


1
2
rustgopy
回复
szuxxy
加油!
2017-08-21
共2条回复

rustgopy

2017-08-21

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

0
1
szuxxy
老师,已经修改了上面的代码了。
2017-08-21
共1条回复

Python Flask 构建微电影视频网站

Python 最好用轻量级框架,让你轻松胜任 Python Web 工程师

683 学习 · 663 问题

查看课程