Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用django-tables2动态地更改顺序_?_Python_Django_Django Tables2 - Fatal编程技术网

Python 如何使用django-tables2动态地更改顺序_?

Python 如何使用django-tables2动态地更改顺序_?,python,django,django-tables2,Python,Django,Django Tables2,我的table类看起来非常典型,只是它可能包含一个before_render()函数。渲染前最棒的是我可以访问self。这使我能够访问有关我正在使用的模型的动态信息。我如何访问动态信息(比如在渲染之前)来更改元类中变量的顺序 def control_columns(table_self): # Changes yesno for all Boolean fields to ('Yes','No') instead of the default check-mark or 'X'.

我的table类看起来非常典型,只是它可能包含一个before_render()函数。渲染前最棒的是我可以访问self。这使我能够访问有关我正在使用的模型的动态信息。我如何访问动态信息(比如在渲染之前)来更改元类中变量的顺序

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'

这看起来有点奇怪,但它是有效的

class DynamicTable(tables.Table):
    ...
    def before_render(self, request):
        self.data.data = self.data.data.order_by('id')
        self.paginate()
    ...

这工作得很好-它会覆盖或在Meta之后运行,所以我可以在Meta中保留order\u by作为默认值,然后在渲染之前覆盖。谢谢