如何用前端模板語言處理後端生成器參數
阿新 • • 發佈:2017-10-12
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)})
如何用前端模板語言處理後端生成器參數