- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是models.py
class CompetitionEntry(models.Model):
submitter = models.ForeignKey(User)
pic = models.ImageField(upload_to=images, blank=True, null=True)
class CompetitionEntryVote(models.Model):
voted_entry = models.ForeignKey(CompetitionEntry)
class Entrylikes(models.Model):
ip_address = models.IPAddressField()
liked_entry = models.ForeignKey(CompetitionEntry)
这是views.py(我认为问题就在这里)
def show_all_entries(request, id):
entries = CompetitionEntry.objects.filter(competition__id__exact=comp.id).annotate(vote_count=Count('competitionentryvote'), likes_count=Count('entrylikes'))
return render(request, "show_all.html", {
"entries": entries,
})
show_all.html
{% for item in entries %}
Votes = {{item.vote_count}} Likes= {{item.likes_count}}
{% endfor %}
这里的问题是输出中的投票和点赞都是相同的。i,e 投票=喜欢=喜欢
如果我重写 View 以仅显示投票或点赞之一,则该页面可以完美运行。
在views.py中,如果我使用entries = CompetitionEntry.objects.filter(competition__id__exact=comp.id).annotate(vote_count=Count('competitionentryvote')) .annotate(likes_count=Count('entrylikes'))
我得到与上面 1 相同的结果
最佳答案
Count
聚合通过映射到 SQL COUNT()
表达式来工作。请参阅the documentation here .
由于您提供的查询在整个查询中只会生成一组行,因此 COUNT()
的值在您的情况下可能相同。您可以尝试按照文档中的建议设置 distinct=True
:
If distinct=True, the count will only include unique instances. This is the SQL equivalent of COUNT(DISTINCT ). The default value is False.
即
CompetitionEntry.objects.filter(...).annotate(vote_count=Count('competitionentryvote', distinct=True))
.annotate(likes_count=Count('entrylikes', distinct=True))
关于django - QuerySet,在多个字段上使用 annotate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16778734/
我正在这里使用这些模型开展一个小项目,我正在尝试找出一种方法来获取一组与当前经过身份验证的用户正在关注的用户关联的所有帖子。 但我不断得到: Cannot use QuerySet for "Prof
基本上我需要一种优雅的方式来执行以下操作:- obj1 = Model1.objects.select_related('model2').get(attribute1=value1) obj2 =
我想知道在删除查询集中的对象时迭代 Django 查询集的最佳方法是什么?例如,假设您有一个包含特定时间条目的日志表,并且您希望将它们存档,以便每 5 分钟不超过 1 个条目。我知道这可能是错误的,但
我今天发现我可以通过索引引用它们来访问查询集中的元素,即 queryset[n] .然而,紧接着我发现queryset[0]不返回与 queryset.first() 相同的记录.为什么会这样,并且是
我看到 QuerySet 类有 2 个不同的方法似乎服务于相同的目的(除非我弄错了):.__nonzero__ 和 .exists 。 (是的,我知道 .__nonzero__ 被 bool 使用。)
我怎样才能让下面的东西起作用? player = Player.objects.get(pk=player_id) game = Game.objects.get(pk=game_id) game_p
我正在使用 Django 1.6 并有如下问题陈述: 假设有两个模型,作者和书籍,那么作者和书籍模型显然是一对多的关系。 现在,我需要显示作者的数据,以便他写的每本书都有一行。 由于 UI 部分在主干
我真的不明白是什么导致了错误我检查了文档,这里有一个非常相似的例子是我的 views.py,我使用的应用程序下的 urls.py 包含,以及模板 View .py class SchoolListVi
几个月来我一直有一个间歇性的错误,我被卡住了!帮助表示赞赏。 class ContentFile(models.Model): """ Represents the metadata
我有几个模型,想要返回属于一个用户的所有模型的查询集,我想知道是否可以从多个模型返回一个查询集? 最佳答案 我假设您的意思是您想从每个模型返回属于用户的所有对象的单个查询集。 你需要一个查询集还是一个
我试图从两个没有外键关系的表中获取结果,只是想知道我使用的方法是否正确。 django.db import models django.contrib.auth.user import User cl
根据 Django REST framework documentation ,以下两个代码片段的行为应该相同。 class UserViewSet(viewsets.ViewSet): ""
我已经在models.py中编写了这些模型: 类User(models.Model): first_name = models.CharField(最大长度= 80) 类Skill(models.Mo
如何在单个表达式中从多对一关系的过滤结果中获取最新值以注释 Django QuerySet? 给定这个玩具模式: from django.db import models class Lorem(mo
我看到很多类似的查询,但似乎没有一个能满足我的需求, 我有一个这样的表: class BGPData(models.Model): subnet = models.ForeignKey(Sub
请问我为什么在我的模板中显示“fav”时收到此错误消息 QuerySet object has no attribute game_id 我试图更换 game_id来自 game , id_game但
我想从字面上将字符串添加到查询集对象。为什么,因为我将它发送到 JSON,将信息放在那里并使其可用而无需遍历查询集将其转换为自定义字典,这将非常好和干净。 我现在所拥有的: a_vote_set.ag
给定一个模型 class Entity(models.Model): identifier = models.IntegerField() created = models.Integ
我的一些对象管理器中有一个方法,它从数据库中获取数据: def products(self, offset=None) 如果没有 offset通过,它只是返回所有对象(大约 5000 个,没有那么多)
我在 StorySerializer 中的 GET/api/stories/169/ 上收到以下错误,如下评论中所述: AttributeError at /api/stories/169/ 'Man
我是一名优秀的程序员,十分优秀!