Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 炼金术中的关系过滤_Python_Postgresql_Filter_Sqlalchemy - Fatal编程技术网

Python 炼金术中的关系过滤

Python 炼金术中的关系过滤,python,postgresql,filter,sqlalchemy,Python,Postgresql,Filter,Sqlalchemy,情况是这样的。我有很多用户和文件。以下是基本代码: owners_datasets = db.Table( 'owners_datasets', db.Column('user_id', db.Integer(), db.ForeignKey( 'user.id', ondelete='CASCADE')), db.Column('dataset_id', db.Integer(), db.ForeignKey( 'dataset.id',

情况是这样的。我有很多用户和文件。以下是基本代码:

owners_datasets = db.Table(
    'owners_datasets',
    db.Column('user_id', db.Integer(), db.ForeignKey(
        'user.id', ondelete='CASCADE')),
    db.Column('dataset_id', db.Integer(), db.ForeignKey(
        'dataset.id', ondelete='CASCADE'))
)

class User(UserJsonSerializer, UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ...

class Dataset(DatasetJsonSerializer, db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    ...
    owners = db.relationship(
        'User',
        secondary=owners_datasets,
        backref=db.backref('collections', lazy='dynamic')
    )
我的目标是在Dataset对象和User对象之间建立一个关系。稍后,我只想查询当前用户在所有者列表中的数据集。由于这是一个多对多映射,我正在寻找类似于
contains()
查询的内容,但似乎找不到任何内容。到目前为止,我得到的是:

datasets = Dataset.query.filter_by(Dataset.owners.any(current_user))
返回错误:

AttributeError: 'User' object has no attribute '_annotate'
我还没有找到任何关于这个错误的参考资料,我不确定如何在这里继续


使用postgres 9.3

你就是一个救生员。这是一个非常糟糕的解决办法,这是一个真正的解决办法。有关于这个的文档吗?当然,方法中的原始示例。
Dataset.query.filter(Dataset.owners.any(User.id==current_user.id))