我需要在Django ORM查询中转换以下SQL查询:
select * from formslist a, files b
where b.fileId=a.fileId_id and formsListId
in (select max(d.formsListId)
from files c, formslist d
where c.fileId=d.fileId_id
group by c.formNumber, d.state, d.product
);
最初我尝试将其转换
select max(d.formsListId)
from files c, formslist d
where c.fileId=d.fileId_id
group by c.formNumber, d.state, d.product
使用此ORM查询:
formsList.objects.select_related('fileId')
.annotate(Count('product'),Count('state'),Count('formNumber'))
错误:
Cannot resolve keyword 'formNumber' into field. As it is not the
field of formsList.
加入
时,无法使用不同的表列进行分组依据下面是我的模特:
class files(models.Model):
fileId = models.AutoField(primary_key=True)
formName = models.CharField(max_length=50)
description = models.CharField(max_length=500)
formFileName = models.CharField(max_length=150)
formNumber = models.CharField(max_length=150)
class formsList(models.Model):
formsListId = models.AutoField(primary_key=True)
fileId = models.ForeignKey(files, on_delete=models.CASCADE)
effectiveDate = models.DateField()
dateOfCreation = models.DateField()
state = models.CharField(max_length=50)
product = models.CharField(max_length=50)
formFilePath = models.CharField(max_length=100)
type = models.CharField(max_length=50)
formVersion = models.CharField(max_length=150)
我对此进行了搜索,但仅找到具有相同表列的分组方式。