Flask-SQLAlchemy:没有链接这些表的外键

脏企鹅

我正在使用Flask-SQLAlchemy和以下内容models.py

class DomainRoot(db.Model):
    # Int/Float fields
    id      = db.Column(db.Integer, primary_key=True)

    # String fields
    domain  = db.Column(db.String(64), index=True, unique=True)

    # DateTime fields
    created = db.Column(db.DateTime)
    updated = db.Column(db.DateTime)

    # ForeignKey relationships
    domain_paths = db.relationship('DomainPath', backref='domain_root', lazy='dynamic')

    def __repr__(self):
        return '<DomainRoot %r>' % (self.domain)

class DomainPath(db.Model):
    # Int/Float fields
    id          = db.Column(db.Integer, primary_key=True)

    # String fields
    domain_path = db.Column(db.String(256), index=True, unique=True)

    # DateTime fields
    created     = db.Column(db.DateTime)
    updated     = db.Column(db.DateTime)

    # ForeignKey fields
    domainroot_id = db.Column(db.Integer, db.ForeignKey('domainroot.id'))

    def __repr__(self):
        return '<DomainPath %r>' % (self.domain_path)

当我尝试查询DomainRoot对象时,出现错误:

InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: Could not determine join condition between parent/child tables on relationship DomainRoot.domain_paths - there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.

据我所知,我已经添加了适当的外键字段。

我在这里做错了什么?

大卫主义

Flask-SQLAlchemydomain_root用下划线自动生成表名您指的是domainroot没有下划线的。

通常,在同一模型中定义fk和关系会更容易,并且避免使用字符串引用。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)

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

class DomainPath(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    root_id = db.Column(db.ForeignKey(DomainRoot.id))
    root = db.relationship(DomainRoot, backref='paths')

db.create_all()
db.session.add(DomainRoot(paths=[DomainPath(), DomainPath()]))
db.session.commit()
print(DomainRoot.query.get(1).paths)
[<__main__.DomainPath object at 0x7fc27f443f28>, <__main__.DomainPath object at 0x7fc27f443fd0>]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flask-SQLAlchemy 不会创建表和外键

来自分类Dev

带有三个表的 Flask SQLAlchemy 外连接

来自分类Dev

flask sqlalchemy关系中的多个外键

来自分类Dev

flask-sqlalchemy中两个具有两个外键的表之间的关系

来自分类Dev

OperationalError在Flask中没有这样的表与SQLAlchemy

来自分类Dev

将SQLAlchemy表导入没有Flask的熊猫数据框

来自分类Dev

SQLAlchemy与复合外键结合(使用flask-sqlalchemy)

来自分类Dev

flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

来自分类Dev

flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

来自分类Dev

Flask + SqlAlchemy ALTER表

来自分类Dev

Flask SQL没有这样的表

来自分类Dev

flask / sqlalchemy-OperationalError:(sqlite3.OperationalError)没有这样的表

来自分类Dev

Flask-SQLalchemy错误说我的表没有名为x的列

来自分类Dev

flask_sqlalchemy在mod_wsgi下“没有这样的表”

来自分类Dev

无法安装flask_sqlalchemy->导入错误:没有名为flask_sqlalchemy的模块

来自分类Dev

在PostgreSQL Flask中删除带有外键的行

来自分类Dev

Flask-SQLAlchemy-模型没有属性“ foreign_keys”

来自分类Dev

AttributeError:使用Flask SqlAlchemy,“ tuple”对象没有属性“ drivername”

来自分类Dev

ModuleNotFoundError:没有名为“ flask_sqlalchemy”的模块

来自分类Dev

Flask SQLAlchemy:属性错误:“函数”对象没有“翻译”属性

来自分类Dev

从表Flask SQLalchemy获取所有关系的列表

来自分类Dev

使用Flask SQLAlchemy从MySQL表访问所有列

来自分类Dev

Flask-Admin:缺少外键字段

来自分类Dev

Flask SQLAlchemy分页错误

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

Flask-SQLAlchemy TimeoutError

来自分类Dev

Flask/SQLAlchemy Insert Into Database

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

无法安装Flask SQLAlchemy

Related 相关文章

  1. 1

    Flask-SQLAlchemy 不会创建表和外键

  2. 2

    带有三个表的 Flask SQLAlchemy 外连接

  3. 3

    flask sqlalchemy关系中的多个外键

  4. 4

    flask-sqlalchemy中两个具有两个外键的表之间的关系

  5. 5

    OperationalError在Flask中没有这样的表与SQLAlchemy

  6. 6

    将SQLAlchemy表导入没有Flask的熊猫数据框

  7. 7

    SQLAlchemy与复合外键结合(使用flask-sqlalchemy)

  8. 8

    flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

  9. 9

    flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

  10. 10

    Flask + SqlAlchemy ALTER表

  11. 11

    Flask SQL没有这样的表

  12. 12

    flask / sqlalchemy-OperationalError:(sqlite3.OperationalError)没有这样的表

  13. 13

    Flask-SQLalchemy错误说我的表没有名为x的列

  14. 14

    flask_sqlalchemy在mod_wsgi下“没有这样的表”

  15. 15

    无法安装flask_sqlalchemy->导入错误:没有名为flask_sqlalchemy的模块

  16. 16

    在PostgreSQL Flask中删除带有外键的行

  17. 17

    Flask-SQLAlchemy-模型没有属性“ foreign_keys”

  18. 18

    AttributeError:使用Flask SqlAlchemy,“ tuple”对象没有属性“ drivername”

  19. 19

    ModuleNotFoundError:没有名为“ flask_sqlalchemy”的模块

  20. 20

    Flask SQLAlchemy:属性错误:“函数”对象没有“翻译”属性

  21. 21

    从表Flask SQLalchemy获取所有关系的列表

  22. 22

    使用Flask SQLAlchemy从MySQL表访问所有列

  23. 23

    Flask-Admin:缺少外键字段

  24. 24

    Flask SQLAlchemy分页错误

  25. 25

    Flask SQLAlchemy关系

  26. 26

    Flask-SQLAlchemy TimeoutError

  27. 27

    Flask/SQLAlchemy Insert Into Database

  28. 28

    Flask SQLAlchemy关系

  29. 29

    无法安装Flask SQLAlchemy

热门标签

归档