如何从Django_tables2行获取信息?

时间:2012-06-01 12:31:22

标签: django django-views django-tables2

我已经声明了一个表,想要获取使用checkboxfield检查的行的值。任何帮助,我如何在我的视图中编写此事件,以便每次我选择一行并点击提交按钮,它返回行的值。代码如下:

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

在我的模板中有一个提交按钮。

1 个答案:

答案 0 :(得分:16)

您需要为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:
        # ...