Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 sqlalchemy复制关系集合的内容_Python_Collections_Reference_Sqlalchemy_Relationship - Fatal编程技术网

Python sqlalchemy复制关系集合的内容

Python sqlalchemy复制关系集合的内容,python,collections,reference,sqlalchemy,relationship,Python,Collections,Reference,Sqlalchemy,Relationship,我有一张有关系的桌子。它看起来像这样: class User(Base) userId = Column(TEXT, primary_key=True) products = relationship('Products', backref=backref('Products')) 加载后,我最终得到一个附加到用户对象的集合,其中包含与该用户相关的所有产品。伟大的正是我想要的!然后,我尝试将此集合从一个用户复制到另一个用户。这是失败的。当我尝试将第二个用户的引用设置为第一个

我有一张有关系的桌子。它看起来像这样:

class User(Base)
    userId = Column(TEXT, primary_key=True)

    products = relationship('Products', backref=backref('Products')) 
加载后,我最终得到一个附加到用户对象的集合,其中包含与该用户相关的所有产品。伟大的正是我想要的!然后,我尝试将此集合从一个用户复制到另一个用户。这是失败的。当我尝试将第二个用户的引用设置为第一个集合时,它成功了,但它删除了第一个用户的引用!这对我来说毫无意义。它看起来像下面这样:

user1.products
>>>> InstrumentedList[product1, product2]
user2.products
>>>> InstrumentedList[]

user2.products = user1.products

user1.products
>>>>[]
user2.products
>>>>[product1, product2]

这似乎违反了我所知道的关于python中引用如何工作的一切。将引用分配给集合不应影响其他现有引用。谁能解释一下这个问题吗?

我在这里解决了这个问题。问题是我试图在多对多关系上下文中分配具有一对多关系的对象。一个产品只能有一个用户,因此当用户将产品分配给用户时,先前的关系将被删除。在集合中表示这一点的方式让人非常困惑