Django在行上查询计数记录

时间:2014-04-14 21:11:10

标签: python django django-queryset

我对django有点生疏。

我想知道是否有人可以告诉我如何从此查询中计算db对象:

UserEnteredTld = Tld.objects.filter(FKtoClient=request.user, auth=0)

我以前做过:

UserEnteredTld = Tld.objects.filter(FKtoClient=request.user, auth=0).count()

模板(包含var)中:

{% if UserEnteredTld  %}    
    <h3>I have Tld's</h3>
{% endif %}

观点:

UserEnteredTld = Tld.objects.filter(FKtoClient=request.user, auth=0).count()
UserAuthTld = Tld.objects.filter(FKtoClient=request.user,auth=1).count()

return render(request, 'accounthome.html', {
         'UserEnteredTld':UserEnteredTld,
         'UserAuthTld':UserAuthTld
    })

模型

class Tld(models.Model):
    auth = models.BooleanField(default=False)
    FKtoClient = models.ForeignKey(User) 

但是,这似乎没有输出任何东西。 (我验证了实际的行存在...)

要明确:我只是尝试计算Tld表的行数,其中{1}}存在于已登录用户和ForeignKey。< / p>

1 个答案:

答案 0 :(得分:1)

请勿使用count。使用existsdocs)。

user_entered_tld = Tld.objects.filter(FKtoClient=request.user, auth=False).exists()

{% if user_entered_tld  %}    
    <h3>I have Tld's</h3>
{% endif %}

一些注意事项:

  • Django最新版本为1.7(测试版)。你不可能使用2.6.2(看起来像Python版本)
  • 不要骆驼你的变量。使用user_entered_tld代替 UserEnteredTld。这是一个很好的Python惯例。