这种使用注释()是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 %}
这里的问题是,输出中的投票和赞同都是一样的。 我,e votes = likes = likes
如果我重写视图只显示其中一个投票或喜欢,该网页完美的作品。
和views.py如果我用
entries = CompetitionEntry.objects.filter(competition__id__exact=comp.id).annotate(vote_count=Count('competitionentryvote')).annotate(likes_count=Count('entrylikes'))
我得到相同的结果如上述1
我从上面的models.py和views.py中删除了内容,因为它们太大而无法粘贴。希望这不会消除主要问题。 –