Как передать переменную в представления на основе класса (ListView)
Мой код 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. Я использую 4.0 Django
Я пытался вставить: funcionarios_number = Funcionarios.objects.aggregate(Count('FuncionarioCartao')) в bellow моего класса, но это не отображается в моем html.
При агрегировании на уровне классов запрос будет выполняться при запуске сервера, и счетчик, таким образом, всегда будет оставаться именно этим числом.
Вы можете определить это в функции:
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 }}