首页 > 解决方案 > '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()

标签: pythondjangodjango-modelsdjango-views

解决方案


如果您只想更新 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,
)

推荐阅读