Flask-Sqlalchemy,多对多关系中的辅助表的主键

SomeUser

我正在尝试使用Flask-Sqlalchemy为Postgresql数据库建立简单的多对多关系:

from app import db
from sqlalchemy.dialects.postgresql import UUID

authors_books = db.Table(
    'authors_books',
    db.Column('id', UUID(as_uuid=True), primary_key=True),
    db.Column('author_id', UUID(as_uuid=True), db.ForeignKey('authors.id')),
    db.Column('book_id', UUID(as_uuid=True), db.ForeignKey('books.id')),
)

class Author(db.Model):
    __tablename__ = 'authors'
    # Fields
    id = db.Column(UUID(as_uuid=True), primary_key=True)
    first_name = db.Column(db.String)
    last_name = db.Column(db.String)

    # Relationships
    books = db.relationship('Book',
                            secondary=authors_books,
                            backref=db.backref('authors', lazy='dynamic'))

class Book(db.Model):
    __tablename__ = 'books'
    id = db.Column(UUID(as_uuid=True), primary_key=True)
    title = db.Column(db.String)

如果我尝试将“书”追加到“作者的书”列表中:

u = User.query.get(user_id)
b = Book.query.get(book_id)
u.books.append(b)

所以我有这个错误:

sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, "d5fb5e3f-2082-41f5-bcd2-bfdde11c78d4", "058fdbbd-d49f-4626-b669-b48dc4e75203").
[SQL: 'INSERT INTO authors_books (author_id, book_id) VALUES (%(author_id)s, %(book_id)s) RETURNING authors_books.id']
[parameters: {'author_id': UUID('d5fb5e3f-2082-41f5-bcd2-bfdde11c78d4'), 'book_id': UUID('058fdbbd-d49f-4626-b669-b48dc4e75203')}]
// Werkzeug Debugger

有没有办法配置用于自动在关联表中设置主键的模型?

SomeUser

https://groups.google.com/forum/#!topic/sqlalchemy/WAHaPIuzqZQ

authors_books = db.Table(
    'authors_books',
    db.Column('id', UUID(as_uuid=True), primary_key=True, default=lambda: uuid.uuid4().hex),
    db.Column('author_id', UUID(as_uuid=True), db.ForeignKey('authors.id')),
    db.Column('book_id', UUID(as_uuid=True), db.ForeignKey('books.id')),
)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flask-Sqlalchemy,多对多关系中的辅助表的主键

来自分类Dev

Flask / SQLAlchemy-多对多关系的关联模型和关联表之间的区别?

来自分类Dev

Flask-Sqlalchemy 3种多对多关系

来自分类Dev

我应该使用flask sqlalchemy多对多关系吗?

来自分类Dev

Flask-SQLAlchemy筛选与父模型的多对多关系

来自分类Dev

如何使用flask-sqlalchemy多次插入多对多关系?

来自分类Dev

如何在SQLAlchemy(python,flask)中为模型用户创建多对多关系

来自分类Dev

使用多对多关系时,Flask-SQLAlchemy返回查询中的对象

来自分类Dev

如何在SQLAlchemy(python,flask)中为模型用户创建多对多关系

来自分类Dev

Jsonify Flask-SQLAlchemy Flask中的多对一关系

来自分类Dev

Flask-appbuilder多对多关系sqlalchemy.exc.NoReferencedTableError错误

来自分类Dev

Flask-appbuilder多对多关系sqlalchemy.exc.NoReferencedTableError错误

来自分类Dev

Jsonify flask-sqlalchemy烧瓶中的多对一关系

来自分类Dev

SQLAlchemy + Flask多对一关系

来自分类Dev

如何在Flask SQL Alchemy中查询一对多/多对多关系?

来自分类Dev

如何在Flask SQLAlchemy中双向建立与辅助backref的数据库关系?

来自分类Dev

Flask-SQLAlchemy:更新一对多关系

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

如何在Flask-Admin表单中处理有序的多对多关系(关联代理)?

来自分类Dev

Flask帮助理解多对多关系上的primaryjoin / secondaryjoin

来自分类Dev

flask sqlalchemy关系中的多个外键

来自分类Dev

SQLAlchemy在与关联表多对多关系中插入数据

来自分类Dev

Flask + SqlAlchemy ALTER表

来自分类Dev

Flask-SQLAlchemy多对多

来自分类Dev

Flask SQLAlchemy order_by关系

来自分类Dev

Flask-SQLAlchemy查询联接关系表

来自分类Dev

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

来自分类Dev

flask-sqlalchemy,一对多关系,外键变为NULL

Related 相关文章

  1. 1

    Flask-Sqlalchemy,多对多关系中的辅助表的主键

  2. 2

    Flask / SQLAlchemy-多对多关系的关联模型和关联表之间的区别?

  3. 3

    Flask-Sqlalchemy 3种多对多关系

  4. 4

    我应该使用flask sqlalchemy多对多关系吗?

  5. 5

    Flask-SQLAlchemy筛选与父模型的多对多关系

  6. 6

    如何使用flask-sqlalchemy多次插入多对多关系?

  7. 7

    如何在SQLAlchemy(python,flask)中为模型用户创建多对多关系

  8. 8

    使用多对多关系时,Flask-SQLAlchemy返回查询中的对象

  9. 9

    如何在SQLAlchemy(python,flask)中为模型用户创建多对多关系

  10. 10

    Jsonify Flask-SQLAlchemy Flask中的多对一关系

  11. 11

    Flask-appbuilder多对多关系sqlalchemy.exc.NoReferencedTableError错误

  12. 12

    Flask-appbuilder多对多关系sqlalchemy.exc.NoReferencedTableError错误

  13. 13

    Jsonify flask-sqlalchemy烧瓶中的多对一关系

  14. 14

    SQLAlchemy + Flask多对一关系

  15. 15

    如何在Flask SQL Alchemy中查询一对多/多对多关系?

  16. 16

    如何在Flask SQLAlchemy中双向建立与辅助backref的数据库关系?

  17. 17

    Flask-SQLAlchemy:更新一对多关系

  18. 18

    Flask SQLAlchemy关系

  19. 19

    Flask SQLAlchemy关系

  20. 20

    如何在Flask-Admin表单中处理有序的多对多关系(关联代理)?

  21. 21

    Flask帮助理解多对多关系上的primaryjoin / secondaryjoin

  22. 22

    flask sqlalchemy关系中的多个外键

  23. 23

    SQLAlchemy在与关联表多对多关系中插入数据

  24. 24

    Flask + SqlAlchemy ALTER表

  25. 25

    Flask-SQLAlchemy多对多

  26. 26

    Flask SQLAlchemy order_by关系

  27. 27

    Flask-SQLAlchemy查询联接关系表

  28. 28

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

  29. 29

    flask-sqlalchemy,一对多关系,外键变为NULL

热门标签

归档