如何合并特定列上的两个查询集



你好,我在我的django应用程序上使用postgres数据库。

我有这个模型:

class MyFile(models.Model):
uuid = models.UUIDField(
default=python_uuid.uuid4,
editable=False,
unique=True)
file = models.FileField(upload_to=upload_to, null=True, blank=True)
path =  models.CharField(max_length=200)
status = models.ManyToManyField(Device, through='FileStatus')
user = models.ForeignKey('users.User', on_delete=models.SET_NULL, null=True, blank=True)
when = models.DateTimeField(auto_now_add=True)
canceled = models.BooleanField(default=False)
group = models.UUIDField(
default=python_uuid.uuid4,
editable=False)

我想要的是分组我的MyFile组,得到所有的数据+与它相关联的文件列表。

我设法获得一个组与文件列表相关联:

MyFile.objects.all().values('group').annotate(file=ArrayAgg('file', ordering='-when'))

的结果如下:

[{"集团":"托托","文件":[‘file1 file2 ']}, ...]

我也可以得到我所有的MyFile数据:

MyFile.objects.all().distinct('group')

我想要得到的结果是:

[{"集团":"托托","文件":[‘file1 file2"]",当":"好"、"路径":"好的","用户":"好的","状态":[],取消:假},…]

所以我可以在group列上合并我的两个查询集,但这不起作用。

任何想法?

如果可以的话试试

MyFile.objects.values('group').annotate(file=ArrayAgg('file', ordering='-when'))

最新更新