django 如何将变量传递给基于类的视图(ListView)

xdnvmnnf  于 2022-11-26  发布在  Go
关注(0)|答案(1)|浏览(141)

我的Views.py代码

class ListaFuncionariosView(ListView):
    model = Funcionarios
    template_name = '../templates/funcionarios/lista_funcionarios.html'
    paginate_by = 10
    ordering = ['FuncionarioCartao']
    queryset = Funcionarios.objects.filter(EmpresaCodigo=1)
    funcionarios_number = Funcionarios.objects.aggregate(Count('FuncionarioCartao'))

我的HTML

<h1>Good Morning</h1>
   Exists: {{funcionarios_number}}
    <br>
    {{funcionarios}}

我想在我的db表中显示注册雇员的总数(在下面的HTML文件中),但是我不知道如何在基于类的视图中放置变量,在这个例子中是ListView。
我试探着放:在我的类的下面,有一个funcionarios_number = Funcionarios.objects.aggregate(Count('FuncionarioCartao ')),但是在我的html中没有显示。

ui7jx7zq

ui7jx7zq1#

通过在类级别进行聚合,查询将在您 * 启动 * 服务器时运行,因此计数将始终保持为该精确数字。
您可以在函数中定义:

class ListaFuncionariosView(ListView):
    model = Funcionarios
    template_name = '../templates/funcionarios/lista_funcionarios.html'
    paginate_by = 10
    ordering = ['FuncionarioCartao']
    queryset = Funcionarios.objects.filter(EmpresaCodigo=1)

    def funcionarios_number(self):
        return Funcionarios.objects.aggregate(total=Count('FuncionarioCartao'))[
            'total'
        ]

然后访问模板视图中的函数:

{{ **view.functionarios_number** }}

相关问题