Python 被模型经理难住了';s汇总/向下投票并显示有序列表时的错误行为
这个可能很棘手 我有一个基本的web应用程序,用户可以发布有趣的URL,并向上/向下投票选出最好/最差的URL。我正在使用Python 2.7和Django 1.5。问题陈述以粗体结尾 在models.py中,我有以下几行(特别注意标有x的行): 接下来在views.py中,我有: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或对其进行投
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()