python - How to optimize models.objects.all() -


views

def vms(request): user = request.user servers = list.objects.all() return render_to_response(     'vmserver/all_vms.html', {         'list': servers,         'user': user,     } ) 

template

{% vm in list %}      <tr class="odd gradex">      <td><a href="/vmserver/vms/{{ vm.id }}/$">{{ vm.list_name }}</a></td>      <td>{{ vm.ip }}</td>      <td>{{ vm.app_name }}</td>      <td>{{ vm.cpu }}</td>      <td>{{ vm.mem }}</td>      <td>{{ vm.total_hard_disk }}</td>      <td>{{ vm.os }}</td>      <td>{{ vm.power_status }}</td> 

in models.list, there has 2 thousands of objects, since it's in render layer. how speed rendering.

the template used datatables bootstrap's plugin, auto pagination, still slowly

this code of models. models.list

class list(models.model): instance_uuid = models.charfield(verbose_name='uuid', max_length=255, null=true, blank=true, unique=true) list_name = models.charfield(verbose_name='清单主机名', max_length=255, null=true, db_index=true) hostname = models.charfield(verbose_name='主机名', max_length=255, null=true) ip = models.genericipaddressfield(verbose_name='ip地址', null=true, db_index=true) template = models.charfield(verbose_name='是否模板', max_length=20, null=true, blank=true) os = models.charfield(verbose_name='操作系统', max_length=100, blank=true, null=true) os_version = models.charfield(verbose_name='操作系统版本号', max_length=100, blank=true, null=true) total_hard_disk = models.integerfield(verbose_name='总硬盘容量', blank=true, null=true, db_index=true) cpu = models.integerfield(verbose_name='cpu核心数量', blank=true, null=true, db_index=true) mem = models.integerfield(verbose_name='内存', blank=true, null=true, db_index=true) delivery_time = models.datefield(verbose_name='资源交付时间', max_length=20, blank=true, null=true) delete_time = models.datefield(verbose_name='资源删除时间', max_length=20, blank=true, null=true) tools_status = models.charfield(verbose_name='tools状态', max_length=20, blank=true, null=true) guest_status = models.charfield(verbose_name='状态', max_length=20, blank=true, null=true) power_status = models.charfield(verbose_name='电源状态', max_length=20, blank=true, null=true) esxi_host = models.genericipaddressfield(verbose_name='esxi主机ip', blank=true, null=true) vc = models.genericipaddressfield(verbose_name='vcenterip', blank=true, null=true) app_name = models.charfield(verbose_name='应用名称', max_length=100, blank=true, null=true, db_index=true) app_role = models.charfield(verbose_name='应用角色', max_length=100, blank=true, null=true) app_description = models.charfield(verbose_name='应用描述', max_length=100, blank=true, null=true) app_admin = models.foreignkey(contact, verbose_name='管理员', to_field='name', null=true, blank=true) industry_group = models.foreignkey(industrygroup, verbose_name='归属公司', to_field='name', null=true, blank=true) born_time = models.datetimefield(verbose_name='创建时间', default=datetime.datetime.now, auto_created=true) update_time = models.datetimefield(verbose_name='上次修改时间', auto_now=true, editable=true, blank=true, null=true) objects = models.manager() custom_objs = listmanager()  class meta:     verbose_name = 'vsphere平台虚拟机'     verbose_name_plural = 'vsphere平台虚拟机'  def __unicode__(self):     return self.list_name  


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -