码迷,mamicode.com
首页 > 编程语言 > 详细

如何用前端模板语言处理后端生成器参数

时间:2017-10-12 14:04:16      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:ica   res   elf   中文   too   efi   value   gen   physical   

数据库模型如下:

class Server(models.Model):
"""
服务器信息
"""
# asset = models.OneToOneField(‘Asset‘)


idc = models.ForeignKey(IDC,null=True, blank=True)
cabinet_num = models.CharField(‘机柜号‘, max_length=30, null=True, blank=True)
cabinet_order = models.CharField(‘机柜中序号‘, max_length=30, null=True, blank=True)

business_unit = models.ForeignKey(BusinessUnit,null=True, blank=True)

tags = models.ManyToManyField(Tag)


server_status_choices = (
(1, ‘上架‘),
(2, ‘在线‘),
(3, ‘离线‘),
(4, ‘下架‘),
)

server_status_id = models.IntegerField(choices=server_status_choices, default=1)

hostname = models.CharField(max_length=128, unique=True)
sn = models.CharField(‘SN号‘, max_length=128, db_index=True)
manufacturer = models.CharField(verbose_name=‘制造商‘, max_length=64, null=True, blank=True)
model = models.CharField(‘型号‘, max_length=64, null=True, blank=True)

manage_ip = models.GenericIPAddressField(‘管理IP‘, null=True, blank=True)

os_platform = models.CharField(‘系统‘, max_length=16, null=True, blank=True)
os_version = models.CharField(‘系统版本‘, max_length=128, null=True, blank=True)

cpu_count = models.IntegerField(‘CPU个数‘, null=True, blank=True)
cpu_physical_count = models.IntegerField(‘CPU物理个数‘, null=True, blank=True)
cpu_model = models.CharField(‘CPU型号‘, max_length=128, null=True, blank=True)

create_at = models.DateTimeField(auto_now_add=True, blank=True)

latest_date = models.DateTimeField(null=True,blank=True)


class Meta:
verbose_name_plural = "服务器表"

def __str__(self):
return self.hostname

对于该模型中的server_status_id字段只可以是一个数字,那么如何显示该字段对应的中文信息呢?

在视图函数里可以这样写:

def test(request):

  server_list=models.Server.objects.all()

  for server_obj in server_list:

    server_obj[choice_name] = server_obj.get_server_status_id_display()

   return render(request,‘xxxxx.html‘,{‘server_list‘:ser_list}) 

这时我们调用get_server_status_id_display()方法显示出了id对应的choice中文,并且重新循环赋值给每一个对象新的字段来对应choice中文。

但是如果我们使用了JS的增删改查组件,情况会怎么样?那时我们拿到的不是一个一个的对象,而是通过Ajax实现的数据库查询。

这时我们可以使用新的方法,利用前端的模板语言来来循环我们后端发送过去的生成器。

def xxx(data_list):

  for i in data_list:

    for j in models.Server.server_status_choices:
      

def test(request):

  data_list=models.Server.objects.values(‘id‘,‘server_status_id‘)

  return render(request,‘xxxxx.html‘,{‘data_list‘:xxx(data_list)})

 

如何用前端模板语言处理后端生成器参数

标签:ica   res   elf   中文   too   efi   value   gen   physical   

原文地址:http://www.cnblogs.com/575dsj/p/7655630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!