Python中文
首页
教程
问答
标签
搜索
登录
注册
在SQLAlchemy中从集合中删除对象
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在一个MySQL数据库中存储一组专利数据,并通过SQLAlchemy与之交互。我在专利类中有一个集合,代表受让人列表(被转让专利的公司):</p> <pre><code>assignees = relationship('Company', secondary=patent_company_table, backref='patents') </code></pre> <p>我正在处理数据库中存储的一些对象,对于专利对象<code>p</code>,我想从<code>p</code>的受让人列表中删除一些受让人<code>a</code>(公司对象)。基于<a href="http://docs.sqlalchemy.org/en/latest/orm/session.html#deleting-from-collections" rel="nofollow">http://docs.sqlalchemy.org/en/latest/orm/session.html#deleting-from-collections</a>,似乎调用<code>s.delete(a)</code>实际上会删除Company对象<code>a</code>。我只想将受让人<code>a</code>从<code>p</code>的受让人列表中删除(即删除专利公司表中的一行),而不是实际删除公司对象,因为<code>a</code>可能在另一个专利对象的受让人列表中。</p> <p>我试着创建一个新的列表<code>new_assignees</code>,该列表除了<code>a</code>之外,还只包含<code>p</code>中的受让人,然后调用:</p> <pre><code>p.assignees = new_assignees s.add(p) </code></pre> <p>不幸的是,这实际上并没有将<code>p</code>标记为脏,所以我假设它不会影响数据库。</p> <p>对于如何从集合中删除对象、删除patent_company_表中的行而不是从company表中删除对象,您有何建议?</p> <p>谢谢你。</p> <h2>更新</h2> <p>下面是一段代码:</p> <pre><code>assignees = patent.assignees for assignee in assignees: if assignee in duplicate_company_to_default: patent.assignees.remove(assignee) default_company = duplicate_company_to_default[assignee] if default_company not in assignees: added_patent_count += 1 patent.assignees.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(default_company) </code></pre> <p>在遍历了所有的专利之后,<code>added_patent_count = 983672</code>但是在<code>session.dirty()</code>中没有对象。在通过<code>append</code>或<code>remove</code>修改之后,是否需要手动添加到会话?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>SQLAlchemy集合支持类似于追加/删除操作的列表。</p> <pre><code>p.assignees.remove(c) </code></pre> <p>这应该删除<code>c</code>表单<code>p.assignees</code>,而不从数据库中删除<code>c</code>。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将python输出重定向到python控制台和Windows中的文本文件
3 回答
如何将Python运行时嵌入运行在Windows上的R包中
4 回答
如何将python进程作为另一个Windows us运行
3 回答
如何将Python进程的输出用Python管道传输?
2 回答
如何将Python进程的输出重定向到Rust进程?
9 回答
如何将python连接到Azure云并创建Azure数据工厂
10 回答
如何将Python连接到Db2
9 回答
如何将python连接到IBMDB2?
3 回答
如何将Python连接到microsoftaccess数据库文件?
6 回答
如何将python连接到MySQL服务器
2 回答
如何将Python连接到Node.js?
10 回答
如何将python连接到Oracle Application Express
8 回答
如何将Python连接到PostgreSQL
10 回答
如何将Python连接到Postgres服务器?
6 回答
如何将Python连接到SAS Enterprise Guide(EG)服务器
3 回答
如何将Python连接到Spark会话并保持RDDs的Ali
4 回答
如何将python连接到sqlite3并在上填充多行
7 回答
如何将python连接到使用docker运行的cassandra
8 回答
如何将python退格应用于字符串
7 回答
如何将python逻辑应用到tkinter GUI中?这是一个简单的GET请求程序
5 回答