如何在Django中计算数据库表的总对象?

时间:2019-01-31 11:01:57

标签: django python-3.x django-models django-views django-template-filters

我的问题是关于Django应用程序,我在班级员工的一个模型中有一个应用程序,我想在模板的正面显示多少个员工注册。

在下面的应用程序中,用户数量已成功处理。

我想从模板表单中在模板显示中输出4个员工注册,并在模板显示中显示 4个在前面注册的员工

Front end side - image

views.py

from django.shortcuts import render,redirect
from django.contrib.auth.forms import UserCreationForm,AuthenticationForm
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django_adminlte.forms import EmployeeForm
from django_adminlte.models import Employee

def emp(request):
    if request.method == "POST":
        form = EmployeeForm (request.POST) # here "form" is one varible
        if form.is_valid():
            try:
                form.save()
                return redirect("/show")
            except:
                pass
    else:
        form = EmployeeForm()
    return render(request,"employee/employee_index.html",{'form':form})

#i want like this below code(this code is working for count user in front side)

def home(request):
    count = User.objects.count()
    return render(request,'index.html',{
        'count' : count
    })

model.py

from django.db import models

class Employee(models.Model):
    eid = models.CharField(max_length=20)
    ename = models.CharField(max_length=20)
    eemail = models.EmailField()
    econtact = models.CharField(max_length=15)

    class Meta:
        db_table = "employee"

    def __str__(self):
        return self.ename

HTML模板

{% extends 'adminlte/base.html' %}

{% block content %}

      <div class="col-lg-3 col-xs-6">
      <!-- small box -->
<div class="small-box bg-yellow">
    <div class="inner">
        <h3>{{ count }}</h3>
        <p>User Registrations</p>
    </div>
    <div class="icon">
          <i class="fas fa-user-plus"></i>
    </div>
    <a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>

  <div class="col-lg-3 col-xs-6">
      <!-- small box -->
   <div class="small-box bg-yellow">
    <div class="inner">
        <h3></h3>
        <p>Total Employee</p>
    </div>
    <div class="icon">
          <i class="fas fa-user-plus"></i>
    </div>
    <a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>

1 个答案:

答案 0 :(得分:0)

只需执行与User相同的操作

def home(request):
    user_count = User.objects.count()
    employee_count = Employee.objects.count()
    return render(request,'index.html',{
        'user_count' : user_count,
        'employee_count' : employee_count,
    })

并将其放入用户模板:

<div class="inner">
    <h3>{{ user_count }}</h3>
    <p>User Registrations</p>
</div>

对于员工:

<div class="inner">
    <h3>{{ employee_count }}</h3>
    <p>Total Employee</p>
</div>