gpt4 book ai didi

python - Flask-Admin 在更新时删除辅助映射

转载 作者:行者123 更新时间:2023-12-02 17:45:14 25 4
gpt4 key购买 nike

我正在使用 Flask-Admin,当我更新内容对象时,它会删除关联的查找表 (content_products_table) 中的所有项目。

因此,如果我在其查找表 (content_products_table) 中映射了一个内容对象和 7 个产品,则更新时从内容到产品的所有映射都会被删除。

我相信发生这种情况是因为我的产品列表在更新时为空,但实际上我的产品列表可能有 1000 个项目,所以我不想在更新之前加载它,只是根本不更新它。我觉得有一种方法可以配置 Flask-Admin 或 sqlalchemy 来忽略更新时的字段。

下面是我的对象示例:

content_products_table = db.Table('content_products', db.Model.metadata,
db.Column('content_id', db.Integer, db.ForeignKey('content.id')),
db.Column('product_id', db.Integer, db.ForeignKey('product.id'))
)

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

products = db.relationship('Product', secondary=content_products_table)

更新我的对象的代码示例:

form.populate_obj(model)
self._on_model_change(form, model, False)
self.session.commit()

任何信息都会有所帮助,因为我对这两个平台都是新手。谢谢!

编辑

我想更新一下,当我的对象更新时,它会删除所有关系。因此,如果我有一个表用户,它对表内容有一对多。当我更新用户时,内容表中的 user_id 将设置为 null。

最佳答案

form_excluded_columns = ('产品')

需要显式排除对象属性。这看起来非常危险。

关于python - Flask-Admin 在更新时删除辅助映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20875913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com