如何在 OpenStack Horizon Dashboard 中在 Ajax-modal 中呈现 Datatable



我是Python Django的初学者。 根据OpenStack的自定义Horizon仪表板教程,我已成功添加了带有Datatable的新面板选项卡。 我还在打开 ajax-modal 的表类中添加了表操作。 但是,我需要渲染的不是内部的表单,而是应该通过 ajax 响应来呈现 datatable。 每行包含表单输入元素(例如文本,收音机)。但是我不知道如何在 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,)

我也为AddSwitch创建了 workflows.py 和创建类

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

这就是我卡住的地方。 我不知道如何编码以及在哪里编码以呈现Datatable,并且通过ajax-response动态填充。

谢谢,我希望有人能带领我进入这个领域。

你忘了在类元中提到"列"属性。请按照 Horizon 当前用于呈现"实例"数据表的机制进行操作。您可以在此处找到创建和呈现数据表的详细分步教程:http://docs.openstack.org/developer/horizon/topics/tutorial.html

希望对你有帮助

最新更新