Создание таблицы данных для повторения в шаблоне Django - PullRequest
0 голосов
/ 05 мая 2019

У меня есть эта функция, которая использует PrettyTables для сбора информации о виртуальных машинах, принадлежащих пользователю. Прямо сейчас, это только показывает информацию, и это работает хорошо. У меня есть новая идея, где я хочу добавить кнопку в новый столбец, который позволяет пользователю перезагрузить виртуальную машину. Я уже знаю, как перезапустить виртуальные машины, но то, что я изо всех сил пытаюсь выяснить, это лучший способ создать набор данных, который я могу перебрать, а затем создать таблицу HTML. Я делал подобные вещи с PHP / SQL в прошлом, и это было просто. Я не думаю, что могу перебирать PrettyTables, поэтому мне интересно, каков мой лучший вариант? Красивые таблицы отлично справляются с упрощением создания таблицы (как вы можете видеть ниже). Я надеюсь использовать другой метод, но при этом сделать его очень простым. По сути, это делает его реляционным и простым в использовании. Любые другие предложения приветствуются. Спасибо!

Вот мой текущий код:

x = PrettyTable()
x.field_names = ["VM Name", "OS", "IP", "Power State"]
for uuid in virtual_machines:
  vm = search_index.FindByUuid(None, uuid, True, False)

  if vm.summary.guest.ipAddress == None:
    ip = "Unavailable"
  else:
    ip = vm.summary.guest.ipAddress

  if vm.summary.runtime.powerState == "poweredOff":
    power_state = "OFF"
  else:
    power_state = "ON"

  if vm.summary.guest.guestFullName == None:
    os = "Unavailable"
  else:
    os = vm.summary.guest.guestFullName

  x.add_row([vm.summary.config.name, os, ip, power_state])
table = x.get_html_string(attributes = {"class":"table table-striped"})
return table

Вот пример того, как это выглядит, а также то, что я планирую сделать с кнопкой. http://prntscr.com/nki3ci

1 Ответ

0 голосов
/ 05 мая 2019

Разобрался, как запросить симпатичную. Это было незначительное дополнение без необходимости переделывать все это.

html = '<table class="table"><tr><th>VM Name</th><th>OS</th><th>IP</th><th>Power 
State</th></tr>'
htmlend = '</tr></table>'
body = ''
for vmm in x:
  vmm.border = False
  vmm.header = False
  vm_name = (vmm.get_string(fields=["VM Name"]))
  operating_system = (vmm.get_string(fields=["OS"]))
  ip_addr = ((vmm.get_string(fields=["IP"])))
  body += '<tr><td>'+ vm_name + '</td><td>' + operating_system + '</td> <td>'+ ip_addr +'</td> <td>ON</td></tr>'
html += body
html += htmlend
print(html)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...