Flask-SQLAlchemy抛出AttributeError(关系'tags'需要一个类或映射器参数)

时间:2014-01-20 20:38:16

标签: python sqlalchemy flask flask-sqlalchemy

使用Flask和Flask-SQLAlchemy开展一个小方案项目,但我似乎遇到了一些麻烦。我正在尝试在MySQL上创建两个具有多对多关系的对象。但我一直有一个非常奇怪的错误:

ArgumentError: relationship 'tags' expects a class or a mapper argument (received: <class 'sqlalchemy.sql.schema.Table'>)

即使代码看起来与Flask-SQLAlchemy "tutorial"中的代码几乎相同。

tags = db.Table('tags',
    db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
    db.Column('nation_id', db.Integer, db.ForeignKey('nation_event.id'))
)

class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class NationEvent(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    tags =  db.relationship('Tag', secondary=tags,
        backref=db.backref('nationevents', lazy='dynamic'))

我已经尝试阅读SQLAlchemy文档以及Flask-SQLAlchemy文档,但我真的找不到任何方法来解决这个问题。我很感激任何人都可以提供帮助。

更新:删除整个数据库并使用其他名称重新设置它会因某种原因解决问题。我无法找到一个理由,为什么在重新命名具有相同名称的数据库时它不起作用,但是......

0 个答案:

没有答案