无法使用过滤器获取 ManytoMany 字段列表

Not able to get list of ManytoMany field using filter

观看次数

create = Create.objects.filter(campaign_id=campaign_id).values()
print (create)
saved = create.produces.filter(active=True).values()
print(saved)

型号

class Create(models.Model):
user = models.ForeignKey(User,on_delete= models.CASCADE,blank=True)
campaign = models.ForeignKey(Campaign,on_delete=models.CASCADE,blank=True)
produces = models.ManyToManyField(Saved,blank=True)



class Saved(models.Model): 
user = models.ForeignKey(User,on_delete= models.CASCADE,blank=True)
unique_key = models.CharField(max_length=2000,default='')
text = models.CharField(max_length=2000,default='')
active = models.BooleanField(default=False,blank=True)

如何使用 active=True 保存所有内容

给出错误 已保存 = create.produces.filter(active=True).values() AttributeError: 'QuerySet' 对象没有属性 'produces'

在 print(create) 的输出中它们是无生产字段

这里创建的是一个查询集,就像一个列表 当你有一个数字列表时说:

list = [1,2,3]

你不能 运行 在该列表对象上使用数字方法 所以你应该做的是:

all_objs = {}
for obj in create:
    objs = obj.produces.filter(active=True).values()
    all_objs.update(objs)

打印(all_objs)