1. 程式人生 > >如何用前端模板語言處理後端生成器參數

如何用前端模板語言處理後端生成器參數

abi 但是 出了 list true 通過 latest field address

數據庫模型如下:

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)})

如何用前端模板語言處理後端生成器參數