【问题标题】:How to get information from Django_tables2 row?如何从 Django_tables2 行获取信息?
【发布时间】:2012-06-01 12:31:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: django django-views django-tables2


    【解决方案1】:

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

    【讨论】:

    • 感谢您的解决方案,但在调试时我看到 pks 是一个仅包含 None 的列表,就像我选择两行然后 [u'None,u'None]...对此有什么想法吗?
    • 听起来您没有使用保存的模型对象作为表数据。
    • 非常感谢,我忘了在查询集中包含 pk 值。它工作正常。
    • 很棒的答案。官方文档中没有包含这似乎很奇怪
    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 2020-10-09
    • 2012-04-04
    • 2020-09-07
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多