8

テーブルを宣言し、checkboxfield を使用してチェックされる行の値を取得したいと考えています。行を選択して送信ボタンを押すたびに、行の値が返されるように、このイベントをビューに書き込むにはどうすればよいですか。コードは次のようになります。

    class mytables(tables.Table):
          new_database = tables.CheckBoxColumn()
          student =tables.Column(accessor='Student')
          Class = tables.Column(accessor='class')

そして、私のテンプレートには送信ボタンがあります。

4

1 に答える 1

21

に適切な値を選択する必要がありますCheckBoxColumn。一般に、クエリセットを表示している場合はpk、各オブジェクトの を に使用しますCheckBoxColumn。あなたの場合、これは次のようになります。

class EnrollmentTable(tables.Table):
    selection = tables.CheckBoxColumn(accessor='pk')
    student = tables.Column()
    class = tables.Column()

次に、ユーザーがフォームを送信できるように、フォーム内でテーブルをレンダリングする必要があります。

<form action="/someurl/" method="post">
    {% load render_tables from django_tables2 %}
    {% render_table table %}
    <input type="submit"/>
</form>

次に、に接続されたビューが必要になります/someurl/。あなたの場合、ビューはPOST変数を見る必要がありますselection:

def someview(request):
    if request.method == "POST":
        pks = request.POST.getlist("selection")
        selected_objects = SomeModel.objects.filter(pk__in=pks)
        # do something with selected_objects
    else:
        # ...
于 2012-06-02T07:49:42.630 に答える