0

次のような一般的な django-tables2 テーブルを定義したい:

クラス GenericTable(tables.Table):
    c1 = tables.TemplateColumn("プレースホルダー")

さて、私の見解では、そのようなことをしたいと思います(警告 - 疑似コード)

g=GenericTable() # 今はテーブルにデータを渡さない
g.columns[0].verbose_name="ビューに基づく特定の名前"
g.columns[0].template = "ビューに基づく特定のテンプレート"
g=initialize( [...] )

それを行う方法はありますか?

それが不可能な場合、初期化する前に GenericTable クラスの定義を変更することは可能ですか?

異なる c1 フィールドを持つ多数のテーブルを定義できますが、それは DRY にはなりません :(

4

1 に答える 1

2

init メソッドに入れることができます....同じです:

class GenericTable(tables.Table):

    def __init__(self, name_based_in_the_view, *args, **kwargs):
        super(GenericTable, self).__init__(*args, **kwargs)
        self.base_columns['c1'].verbose_name = name_based_in_the_view

あなたの見解では:

g = GenericTable(name_based_in_the_view = "Specific name based on view")
于 2012-06-06T10:32:38.060 に答える