如何使用 django 表 2 动态更改order_by?

我的表类看起来很典型,除了它可能包含一个before_render()函数。before_render的伟大之处在于我可以接触到自己。这使我可以访问有关我正在使用的模型的动态信息。如何访问动态信息(如来自before_render)以更改 Meta 类中的order_by变量?


def control_columns(table_self):

    # Changes yesno for all Boolean fields to ('Yes','No') instead of the default check-mark or 'X'.

    for column in table_self.data.table.columns.columns:

        current_column = table_self.data.table.columns.columns[column].column

        if isinstance(current_column,tables.columns.booleancolumn.BooleanColumn):

            current_column.yesno = ('Yes','No')


class DynamicTable(tables.Table):

    def before_render(self, request):

        control_columns(self)


    class Meta:        

        template_name = 'django_tables2/bootstrap4.html'

        attrs = {'class': 'custom_table', 'tr': {'valign':"top"}}

        order_by = 'index'


长风秋雁
浏览 90回答 1
1回答

四季花海

所以这似乎有点奇怪,但它有效class DynamicTable(tables.Table):    ...    def before_render(self, request):        self.data.data = self.data.data.order_by('id')        self.paginate()    ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python