在table_objs_change.html:
<form class="form-horizontal" method="post" onsubmit="return SelectAllChosenData()">{% csrf_token %}
<div style="color: red">{{form_obj.errors}}</div>
{% for filed_form in form_obj%}
<div class="form-group">
<label class="col-sm-2 control-label" style="font-weight:normal">
{% if filed_form.field.required%}
<b>{{filed_form.label}}</b>
{% else %}
{{filed_form.label}}
{% endif %}
</label>
<div class="col-sm-10">
{#<input type="email" id="inputEmail3" placeholder="{{filed_form}}">#}
{% if filed_form.name in admin_class.filter_horizontal%}
<div class="col-lg-5">
{% get_m2m_choose_data admin_class filed_form form_obj as m2m_obj_list%}
<select multiple class="filter-select-box" id="id_{{filed_form.name}}_from">
{% for m2m_obj in m2m_obj_list%}
<option ondblclick="MoveElementTo(this,'id_{{ filed_form.name }}_to','id_{{ filed_form.name }}_from')" value="{{m2m_obj.id}}">{{m2m_obj}}</option>
{% endfor %}
</select>
</div>
<div class="col-md-1">
箭头
</div>
<div class="col-lg-5">
{% get_m2m_selected_obj filed_form form_obj as m2m_seleced_list %}
<select tag="chosen_list" multiple class="filter-select-box" id="id_{{filed_form.name}}_to" name="{{filed_form.name}}">
{% for m2m_selected_obj in m2m_seleced_list %}
<option ondblclick="MoveElementTo(this,'id_{{ filed_form.name }}_from','id_{{ filed_form.name }}_to')" value="{{m2m_selected_obj.id}}">{{m2m_selected_obj}}</option>
{% endfor %}
</select>
</div>
{% else %}
{{filed_form}}
{% endif %}
</div>
</div>
{% endfor %}
<div class="form-group">
<button type="submit" class="btn btn-success pull-right" >SAVE</button>
</div>
</form>
<script>
function MoveElementTo(ele,target_id,new_target_id) {
var opt_ele = "<option value='" + $(ele).val() + "' ondblclick=MoveElementTo(this,'" + new_target_id +"','"+ target_id +"')>" + $(ele).text() + "</option>";
// $(ele).off().dblclick($(ele), parent_id)
$("#" +target_id).append(opt_ele);
$(ele).remove();
}
function SelectAllChosenData() {
$("select[tag='chosen_list'] option").each(function () {
$(this).prop("selected",true);
})
return true;
}
</script>