python - 'QuerySet' 对象没有使用 django 的属性'save'
问题描述
opportunity = Opportunity.objects.filter(created_by__client=client, id=pk).exclude(is_deleted=True)
for opp in opportunity:
id = opp.id
name = opp.name
contact = opp.contact.id
project = Project.objects.filter(client=client)
project.opportunity = id
project.name = name
project.contact = contact
project.save()
解决方案
如果您只想更新 django 查询集中的一个实体。您需要使用.first()
(https://docs.djangoproject.com/en/3.1/ref/models/querysets/#first)或.get()
(https://docs.djangoproject.com/en/3.1/ref/models/querysets /#get ) 方法:
id = opp.id
name = opp.name
contact = opp.contact.id
project = Project.objects.filter(client=client).first() # get first value from qs
project.opportunity = id
project.name = name
project.contact = contact
project.save()
.update()
您也可以使用(https://docs.djangoproject.com/en/3.1/ref/models/querysets/#update)方法更新所有查询集元素:
id = opp.id
name = opp.name
contact = opp.contact.id
project = Project.objects.filter(client=client).update(
opportunity=id,
name=name,
contact=contact,
)
推荐阅读
- dafny - 调用可能违反上下文的修改子句
- arduino - 如何使 setup() 中创建的对象的范围成为全局的?
- html - Bootstrap navbar + purecss 菜单错位
- php - 使用 for 循环定义函数
- javascript - Javascript - 将图像发布到 Twitter 没有重复
- java - 无法确定为什么 smallrye/camel 代码片段未编译:骆驼上下文 obj 中没有订阅者方法?
- postgresql - Postgres 获取转换表列
- python-3.x - 熊猫汇总两列的总和并将其作为一列
- ember.js - 如何在不刷新页面的情况下从数据库重新加载 ember-light-table 中的数据
- python - 如何打印字典键的类属性