2016-06-06 1 views
1

Я использую таблицы django2 для отображения данных в форме таблицы. Я хочу, чтобы таблица сортировалась по столбцу1 по умолчанию при загрузке страницы. Сортировка работает при нажатии на столбец, но я хочу, чтобы это было отсортировано по умолчанию при загрузке страницы.Django tables2 - как отсортировать столбец таблицы при загрузке страницы?

ответ

-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}) 
+0

Речь идет о сортировке обработанную таблицу для Джанго-tables2, не регулярные querysets. – Jieter

0

Table конструктор имеет order_by -argument. Вы можете использовать это, чтобы установить начальный порядок.

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 «s 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 
+0

Это сортировка таблицы, но другие поля сортировки не работают. сортируется только последнее имя. –

+0

Вы также можете передать кортеж столбцов для сортировки. Но это не вопрос, который вы задали. – Jieter

+0

Я попросил сортировку рабочего стола. Когда я даю order_by, таблица отображается как имя_статистического_база. И по умолчанию выбирается значок сортировки (стрелка вниз) для столбца lastname. В этом случае, если мы выберем другой столбец, сортировка не будет работать. Если мы удалим order_by, сортировка на других столбцах также будет работать нормально. –