4

私はdjango-tables2を試しています。日付の列を表示するテスト サイトを作成しました (によって作成されましたtimezone.now())。デフォルトでは、日付は最も古いものから新しいものへと並べられます。列ヘッダーをクリックすると、日付が逆順に表示されます (望ましいデフォルトの動作)。

私はorder_by議論をいじりましたが、何か間違っています。私のtables.py:

class OrderTable(tables.Table):
    order_date = tables.Column(order_by=("Order Date",))

私のviews.py:

def index(request):
    table = OrderTable(Order.objects.all())
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'orders_app/index.html', {'table': table})

「注文日」列を注文して、最新 - >最古と表示するにはどうすればよいですか?

4

2 に答える 2

6

'-'順序を逆にするには、列名の前にa を付けるだけです。order_byテーブルの初期化時に指定できます。

def index(request):
    table = OrderTable(Order.objects.all(), order_by="-order_date")
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'orders_app/index.html', {'table': table})

参照order_by:

デフォルトの順序。例えば('name', '-age')-降順を示すために、列名の前にハイフンを使用できます。

また、列の代替順序の指定も参照してください

于 2013-11-04T16:49:40.763 に答える
1

次のように、クエリセットで順序を設定できます。

table = OrderTable(Order.objects.order_by('-Order Date'))

または、テーブル オブジェクトを直接使用します。

table = OrderTable(Order.objects.all())
table.order_by = '-Order Date'
于 2013-11-04T17:19:05.907 に答える