在Django模板中显示对象总数

时间:2019-08-02 09:31:21

标签: django

我有一个Djanjo项目,在其中将代码段添加到数据库中,我想在模板中显示总代码段的数量。

这是我的模型文件:

import datetime
from django.utils import timezone
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

class Snippet(models.Model):
    snippet_name = models.CharField(max_length=200)
    description = models.TextField(max_length=600)
    code = models.TextField(default="null")
    approval_stage = models.CharField(max_length=200)
    updated = models.DateField('updated date')
    is_automated = models.BooleanField(default=False)

    def __str__(self):
        return self.snippet_name

    def total_snippets(self):
        return snippet_name.count()

这是我的模板文件中要显示代码段数的部分:

<h5>{{ total_snippets }} total snippets</h5>

这将在最终模板上按值显示空白。我已经从另一个模型复制了此代码,在该模型中,我显示了相似的对象数,并且按预期工作,我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

要计算具有特定名称的所有代码段,这就是您要查找的内容:

class Snippet(models.Model):
    ...
    def total_snippets(self):
        return Snippet.objects.filter(snippet_name=self.snippet_name).count()

或者总体上计算所有片段:

class Snippet(models.Model):
    ...
    def total_snippets(self):
        return Snippet.objects.all().count()