在Django模板中从数据库中计算True或False(1或0)值

时间:2018-03-06 20:09:00

标签: django python-3.x django-templates django-queryset

我正在尝试实施用户模板视图,以显示有多少设备在线以及有多少设备处于离线状态。对于那个实例,我存储在数据库列' status'值为1和0。

我无法弄清楚如何获取这些值并在Django环境中计算它们。我的意思是如果我有4个True(1)值,在模板中它应该看起来像:

您有4个在线设备

,反之亦然,如果有4个False(0)值,它应该是:

您有4个离线设备

是否有可能在Django中实现?我真的是这个领域的新秀,非常感谢一些好的提示......

my models.py

class Device(models.Model):
    usr = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    ip = models.CharField(max_length=50)
    status = models.IntegerField(default=0)

1 个答案:

答案 0 :(得分:0)

您可以在视图中执行此操作:

class MyView(View):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        queryset = Device.objects.filter(usr=self.request.user)
        context['nb_online'] = queryset.filter(status=1).count()
        context['nb_offline'] = queryset.filter(status=0).count()
        return context

然后,您可以在模板中访问{{ nb_online }}{{ nb_offline }}