Я использую таблицы django2 для отображения данных в форме таблицы. Я хочу, чтобы таблица сортировалась по столбцу1 по умолчанию при загрузке страницы. Сортировка работает при нажатии на столбец, но я хочу, чтобы это было отсортировано по умолчанию при загрузке страницы.Django tables2 - как отсортировать столбец таблицы при загрузке страницы?
ответ
Если база данных 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})
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
Это сортировка таблицы, но другие поля сортировки не работают. сортируется только последнее имя. –
Вы также можете передать кортеж столбцов для сортировки. Но это не вопрос, который вы задали. – Jieter
Я попросил сортировку рабочего стола. Когда я даю order_by, таблица отображается как имя_статистического_база. И по умолчанию выбирается значок сортировки (стрелка вниз) для столбца lastname. В этом случае, если мы выберем другой столбец, сортировка не будет работать. Если мы удалим order_by, сортировка на других столбцах также будет работать нормально. –
Речь идет о сортировке обработанную таблицу для Джанго-tables2, не регулярные querysets. – Jieter