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问题
我是否正确构建了这个递归神经网络
5 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
1 回答
我是否正确理解Keras中的批次大小?
4 回答
我是否正确理解PyTorch的加法和乘法?
10 回答
我是否正确组织了我的Django应用程序?
1 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
1 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
4 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
10 回答
我是否用python安装了socks模块?
10 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
7 回答
我是否缺少spaCy柠檬化中的预处理功能?
10 回答
我是否缺少给定状态下操作的检查?
5 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
7 回答
我是否能够使用用户输入作为colorama模块中的颜色?
3 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
10 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
4 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
2 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
8 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
1 回答
我是否要使它成为递归函数?
6 回答