Python 被模型经理难住了';s汇总/向下投票并显示有序列表时的错误行为

Python 被模型经理难住了';s汇总/向下投票并显示有序列表时的错误行为,python,django,python-2.7,django-views,Python,Django,Python 2.7,Django Views,这个可能很棘手 我有一个基本的web应用程序,用户可以发布有趣的URL,并向上/向下投票选出最好/最差的URL。我正在使用Python 2.7和Django 1.5。问题陈述以粗体结尾 在models.py中,我有以下几行(特别注意标有x的行): 接下来在views.py中,我有: class LinkListView(ListView): model = Link x queryset = Link.with_votes.all() 此设置执行以下操作:每当提交URL或对其进行投

这个可能很棘手

我有一个基本的web应用程序,用户可以发布有趣的URL,并向上/向下投票选出最好/最差的URL。我正在使用Python 2.7和Django 1.5。问题陈述以粗体结尾

models.py中,我有以下几行(特别注意标有x的行):

接下来在views.py中,我有:

class LinkListView(ListView):
    model = Link
x   queryset = Link.with_votes.all()
此设置执行以下操作:每当提交URL或对其进行投票时,
LinkVoteCountManager()
将其向上/向下投票相加,并返回按总数排序的查询集


现在对于新提交的链接,
LinkVoteCountManager()
的投票总数应为0,因为
Vote
中的
value
被设置为0(默认情况下)但是,我得到的是新提交链接的投票计数
NONE
,这完全搞乱了投票的顺序。
为什么新链接的
LinkVoteCountManager
表现不正确(但在第一次投票后工作正常)。我怎样才能修好它?请告知。

对于新创建的链接,可能没有投票对象。在这种情况下,带注释的
投票
属性将为
None
。我现在不知道如何解决这个问题,但我想你可以使用。

正如Rene在回答中指出的,
投票
对象不存在,这导致投票计数的值为
无。当然,这是完全合乎逻辑的。我不会推翻这个逻辑,相反,我会重新设计我的排名算法,以确保“无”选票被计算为“0”

class LinkListView(ListView):
    model = Link
x   queryset = Link.with_votes.all()