我正在尝试从我的模型中查询和注释一些数据:
class Feed(models.Model): # Feed of content
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Piece(models.Model): # Piece of content (video or playlist)
removed = models.BooleanField(default=False)
feed = models.ForeignKey(Feed, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
以下查询中未使用其他字段,因此我在此处跳过它们。
在我看来,我需要获取经过身份验证的用户的所有提要的查询集。注释应包含所有未删除部分的数量。
最初,Piece
模型不包含removed
字段,并且查询集的一切都很好,如下所示:
Feed.objects.filter(user=self.request.user).annotate(Count('piece'))
但是后来我将该字段添加removed
到Piece
模型中,并且只需要计算未删除的部分:
Feed.objects.filter(user=self.request.user)
.annotate(Count('piece'), filter=Q(piece__removed=False))
它给了我以下错误:
'WhereNode' object has no attribute 'output_field'
这只是 django 在错误页面上输出的一小部分,所以如果还不够,请让我知道我的问题中还需要包含什么。
我试图在这里和那里包含或(正确导入)之output_field
类的选项,但出现了一些我没有在此处提供的错误,因为我认为这些操作毫无意义。models.IntegerField()
models.FloatField()
我正在使用 Django 2.0.3