1

私は次のものを持っています:

models.py

class Person(models.Model):
    full_name = models.CharField(...)
    address = models.CharField(...)

ビュー.py

def all_persons(request):
    persons = Person.objects.all()
    return render(
        request, 
        'my_template.html', 
        {
            'persons':persons
        }
    )

my_template.html

<table class="table table-striped">
    <thead> 
    <tr> 
    <th>Person's Fullname</th>
    </tr>
    </thead> 
    <tbody>
    {% for person in persons %}
        <td>{{ person.full_name }}</td>
        <td>{{ person.address }}</td>

わかりましたので、そのままのコードは、テンプレートに人物の順序付けされていないリストを表示します。もちろん、人物の名前または住所で並べ替えることができます。ユーザーが任意のフィールドで並べ替えることができるようにしたいと考えています。これは、テンプレートのテーブルの各列にあるボタンで行います。たとえば、full_name の上にあるボタンと address の上にあるボタンのいずれかが押された場合、リストは押されたボタンに応じて順序付けられる必要があります。

お読みいただきありがとうございます。お役に立てば幸いです。

編集: Twitter Boostrap 2 を使用しているため、tablesorter と DataTables JS は機能しません。

4

1 に答える 1

1

HTML テーブル用のこの JS プラグインを確認してください: Datatables。並べ替え、フィルタリング、ページネーション、多数のプラグインが付属しています。始めるのは簡単ですが、少し肥大化していると思うかもしれません。

もう 1 つの方法は、ビューに追加の引数 (たとえば、フィールドを表す整数) を持たせ、このフィールドでクエリセットを並べ替え、テンプレートをレンダリングすることです。

于 2013-01-29T01:47:00.503 に答える