Django tables2 - 如何在页面加载时对表列进行排序?

时间:2016-06-06 08:41:39

标签: django django-templates django-tables2

我使用django tables2以表格形式呈现数据。我希望在页面加载时将表按column1排序为默认值。排序正在单击列,但我希望在页面加载时默认对其进行排序。

2 个答案:

答案 0 :(得分:1)

Table构造函数有一个order_by - 参数。您可以使用它来设置初始排序。

import django_tables2 as tables

class Table(tables.Table):
    first_name = tables.Column()
    last_name = tables.Column()


def view(request):
    table = Table(data, order_by='last_name')

    return render(request, 'template.html', {'table': table})

Table class Meta

中也提供了此选项
class Table(tables.Table):
    first_name = tables.Column()
    last_name = tables.Column()

    class Meta:
        order_by = '-last_name'  # use dash for descending order

答案 1 :(得分:-2)

如果您的数据库是SQLite,请尝试:

results = model_name.objects.extra(select={'model_field':'CAST(model_field AS INTEGER)'}).order_by('model_field')
return render(request, template_name, {"results":results})