自动将约束应用于SQLAlchemy查询

时间:2017-07-13 03:38:15

标签: python sqlalchemy flask-sqlalchemy

我正在寻找一种最佳方法来精确控制特定User可以从数据库中检索的内容。

当前设计实现了UserLicense模型,是一对多关系,以及许多连接的实体,例如CountryCity,{{ 1}}等等。某些实体(例如Person)应限于根据Country字段进行查看,因此我希望能够为License分配查看权限以查看{{} 1}}添加user = User(id=1, name="Adam")。现在最棘手的部分是,我想通过使用来自france = Country(id=1, name="France")的数据扩充查询来以某种方式应用于所有查询,因此基于License(user=user, countries=[france])设置上下文。

更重要的是,我想确保,例如,如果用户要查询来自License的10个结果(User上有FK) ,用户只会看到City内有Country要查看的城市。

我假设没有开箱即用的SQLAlchemy扩展来定义这样的关系,但也许你可以指出我正确的方向在哪里以这样的形式连接统治 - 通过子类化查询,或者可能是一些其他方式?

理想情况下,界面允许我执行以下操作:Countries,其中License负责内省查询并根据&#39应用正确的City.query.filter(..).restrict_for(user).all() ;正在检索并且restrict_for可用。

0 个答案:

没有答案