我是Python Django的初学者。根据openstack的自定义水平仪表板教程,我已经成功添加了新的面板,带有数据表的选项卡。我还在表类中添加了表操作,打开了ajax-modal。但我不需要渲染表单,而是需要渲染数据表,这应该通过ajax-response来感受。每行包含表单输入元素(例如文本,无线电)。但我无法弄清楚如何在ajax-modal中渲染数据表。
请看看tables.py
class AddSwitch(tables.LinkAction):
name = "addswitch"
verbose_name = _("Add Switch")
url = "horizon:project:sdncontroller:addswitch"
classes = ("ajax-modal", "btn-create",)
class Switches(tables.DataTable):
dpid = tables.Column("dpid",verbose_name=_("DPID"))
address = tables.Column('address', verbose_name=_("Address"))
vendor = tables.Column('vendor', verbose_name=_("Vendor"))
packets = tables.Column('packets', verbose_name=_("Packets"))
bytes = tables.Column('bytes', verbose_name=_("Bytes"))
flows = tables.Column('flows', verbose_name=_("Flows"))
connectedsince = tables.Column('connectedsince', verbose_name=_("ConnectedSince"))
detail= tables.Column('details', verbose_name=_("Detail"))
class Meta:
name = "Switches"
verbose_name = _("Switches")
table_actions = (AddSwitch,)
我也创建了workflows.py并为AddSwitch创建了类
class AddSwitch(workflows.Workflow):
slug = "addswitch"
name = _("Add Switch")
finalize_button_name = _("Add")
success_message = _('Added switch "%s".')
failure_message = _('Unable to add switch "%s".')
success_url = "horizon:project:sdncontroller:index"
default_steps = (AddSwitchStep,)
def format_status_message(self, message):
name = self.context.get('name')
return message % name
def handle(self, request, context):
try:
#api.lbaas.pool_create(request, **context)
return True
except Exception:
return False
这是我卡住的地方。我不知道如何编写代码以及在何处编写数据表以及通过ajax-response动态填充。
谢谢,我希望有人能引导我进入这个。
答案 0 :(得分:0)
你忘了提及Class Meta中的“columns”属性。请遵循Horizon当前使用的机制来呈现“实例”数据表。您可以在此处找到详细的分步教程,以创建和呈现数据表:http://docs.openstack.org/developer/horizon/topics/tutorial.html
希望有所帮助