无法使用过滤器获取 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)
观看次数
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)