通过复选框传递值元组

时间:2015-02-06 16:04:42

标签: python html django checkbox django-templates

我有一个有组织的项目列表,用户可以使用复选框进行选择。我试图为每个选中的复选框传递一个值元组,以便我可以获得有关项目本身和项目所属组的信息。我尝试使用隐藏字段但似乎隐藏字段值正在传递,无论是否已选中相应的复选框。

如果选中了复选框,我需要引文ID和父软件。我可以为每个选中的复选框传递一个(citation.id,sw)元组,并且因为可以检查多个复选框,所以将所有这些作为元组列表一起传递?喜欢:[(citation1.id,sw1),(citation2.id,sw2),]?我认为我需要这些信息。

感谢您的帮助!

select_citations.html

{% for sw in software %}
    {{sw}}
    {% for citation in all_citations %}
        <input type="checkbox" name="myselection[]" value="{{citation.id}}">
        <input type="hidden" name="myselection[]" value="{{sw}}">
    {% endfor %}
{% endfor %}

1 个答案:

答案 0 :(得分:1)

将两个模型的ID组合为复选框的单个值:

{% for sw in software %}
  {{sw}}
  {% for citation in all_citations %}
    <input type="checkbox" name="selection" value="{{citation.id}}-{{sw.id}}">
  {% endfor %}
{% endfor %}

然后在视图中解构这些值:

ids = [value.split('-') for value in request.POST.getlist('selection')]