0

模板

<form  method="post" action=".">
{% csrf_token %}
  <table  width="100%" cellpadding="0" cellspacing="0" >
   <tr>
   <td colspan="2" class="incident-type">
   {% for type in typeList%}
   {% if type.parent_type_id == None %} 
   <h1>{{type.title}}</h1>
   {% else %}
   {% if checked_ones  %}
   <label><input type="checkbox"  checked="True" value="{{ type.title }}" name="key">{{ type.title }}</label><br /> 
   {% else %}
   <label><input type="checkbox"  value="{{ type.title }}" name="key">{{ type.title }}</label><br /> 
   {% endif %}
{% endfor %}

看到这里,复选框输入来自views.py中的这一行

 checked_ones = [unicode(x) for x in subtype if unicode(x) in request.POST.getlist('key')] 

这里的问题是,如果选中并保存了任何一个选项,则所有其他复选框选项都被选中(页面重定向后)。

尝试了一些逻辑循环,需要一些帮助。

4

1 回答 1

2

尝试这个,

{% for type in typeList%}
  {% if type.parent_type_id == None %} 
  <h1>{{type.title}}</h1>
  {% else %}
  {% if type.title in checked_ones %}
  <label><input type="checkbox"  checked="True" value="{{ type.title }}" name="key">{{ type.title }}</label><br /> 
  {% else %}
  <label><input type="checkbox"  value="{{ type.title }}" name="key">{{ type.title }}</label><br /> 
{% endif %}
 {% endif %}
  {% endfor %}

希望这可以帮助!

于 2013-06-04T15:59:11.317 回答