【问题标题】:Django - Multiple Select Box - Save Changes to DatabaseDjango - 多选框 - 将更改保存到数据库
【发布时间】:2020-03-29 16:36:54
【问题描述】:

我能够让一个多选框在编辑模式下工作:

<section class="container">
<div>
    <select id="leftValues" size="5" multiple></select>
</div>
<div>
    <input type="button" id="btnLeft" value="&lt;&lt;" />
    <input type="button" id="btnRight" value="&gt;&gt;" />
</div>
<div>
    <select id="rightValues" size="4" multiple>

            {% for device in devices %} 
                <option>{{ device }}</option>
            {% endfor %} 
    </select>
</div>      
</section>      

    <div>
        <input type="text" id="txtRight" />
    </div>
 </section>

<button type="submit" id="save">Save Changes</button>
<!--button type="cancel">Cancel</button-->
<a href="{% url 'inventory:display_maintenance' %}" ><button type="button">Maintenance Page</button></a> 

</form>
<link rel="stylesheet" href="{% static 'css/msb.css' %}">
<script>
$("#btnLeft").click(function () {
    var selectedItem = $("#rightValues option:selected");
$("#leftValues").append(selectedItem);
});

$("#btnRight").click(function () {
    var selectedItem = $("#leftValues option:selected");
$("#rightValues").append(selectedItem);
});

$("#rightValues").change(function () {
    var selectedItem = $("#rightValues option:selected");
$("#txtRight").val(selectedItem.text());
});

但是当我选择保存按钮时,在对表格进行更改后,再次在模板中 edit_maintenance.html,它不会输入数据库。

views.py中与此相关的代码如下:

def 编辑维护(请求,ID): license_key = Maintenance.objects.get(id=id) maintenance_form = MaintenanceForm(instance=license_key) 设备 = Devices.objects.filter(维护 = id) 如果 request.method == 'POST': 打印(请求。POST) maintenance_form = MaintenanceForm(request.POST, instance=license_key) 如果maintenance_form.is_valid(): 维护_form.save() # return redirect('maintenance:edit_maintenance', id) 参数 = { “维护表格”:维护表格, “设备”:设备 } 返回渲染(请求,'inventory/edit_maintenance.html',args)

我对此还很陌生,所以任何提示、示例都会很棒。

【问题讨论】:

  • 欢迎来到 SO。您应该提供更多详细信息,尤其是此模板背后的 逻辑 (views.py)。
  • 谢谢@PedramParsian。好的,这是views.py中的代码
  • 我相信我需要添加更多细节。我使用了此堆栈溢出条目中引用的代码:stackoverflow.com/questions/15696415/html-multiple-select-box 被列为示例jsfiddle.net/eUDRV/3 问题是,我没有得到我对数据库中反映的表所做的更改。例如,如果我将一个设备移动到表的左侧,我希望将外键关系设置为空;我希望删除设备和维护之间的关系,同时保留设备和维护表。

标签: mysql django


【解决方案1】:

很遗憾,这是一个新手的错误。我重新运行 makemigration 和 migrate 并且功能现在可以正常工作......删除。现在我需要处理添加代码。

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    相关资源
    最近更新 更多