0

私は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を介して動的にいっぱいになります。

ありがとう、誰かが私をこれに導いてくれることを願っています。

4

1 に答える 1

0

クラス メタの「列」属性について言及するのを忘れていました。「インスタンス」データ テーブルをレンダリングするために Horizo​​n で現在使用されているメカニズムに従ってください。データ テーブルを作成してレンダリングする詳細なステップ バイ ステップ チュートリアルは、http: //docs.openstack.org/developer/horizo​​n /topics/tutorial.html にあります。

それが役に立てば幸い

于 2014-03-12T02:15:01.130 に答える