在Django中追加到queryset对象

2skhul33  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(132)

我的Django模型:

class Job(models.Model):
    title = models.CharField(_('Job Title'),max_length=150, blank=True, default="")
    description = models.CharField(_('Description'), max_length=250, blank=True, default="")
    user = models.ForeignKey('User', verbose_name="User", on_delete=models.CASCADE, null=True)
    
    def __str__(self):
        return self.title

字符串
我有一个django对象的查询集:

>>> jobs = Job.objects.all()
<QuerySet [<Job: university>, <Job: companies>, <Job: inside>, <Job: outside>]>


我想遍历它们,用它们没有的键更新它们的dict(将它们的dict与新的dict合并)。有可能做这样的事吗?

for job in jobs:
   job.update('new_key' : 'new_value') #This returns error


使用以下键获取作业对象:标题、说明、用户、新值。
我为什么要这么做?为了更容易地迭代那些与模板中只有一个for循环的作业相关的值。
我不想使用 Job.objects.all().values(),因为这样我就不能在模板中使用 job.user.name 并获取用户名或用户信息。

abithluo

abithluo1#

我现在做了,我得到了。使用过滤器获取多个ID。Use get只接受单个元素。例如,如果您有一个名为Product的查询集,其中已经注册了许多产品,也就是说,有几个id。执行:

a= list(Product.objects.filter(id=7)) 
b= list(Product.objects.filter(id__in=['3','5'])) 
a.append(b) 
print(a)

字符串

相关问题