Django-多个选择框-将更改保存到数据库

时间:2019-12-04 19:29:09

标签: mysql django

我能够在编辑模式下使用多个选择框:

<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 edit_maintenance(request, id):
        license_key = Maintenance.objects.get(id=id)
        maintenance_form = MaintenanceForm(instance=license_key) 
        devices = Devices.objects.filter(maintenance = id)

        if request.method == 'POST': 
           print(request.POST)

           maintenance_form = MaintenanceForm(request.POST, instance=license_key)

        if maintenance_form.is_valid(): 
           maintenance_form.save()
  #         return redirect('maintenance:edit_maintenance', id)

        args = { 
           'maintenance_form' : maintenance_form, 
           'devices' : devices 
            }

       return render(request, 'inventory/edit_maintenance.html', args) 
 

我对此还很陌生,因此任何提示,示例都很好。

1 个答案:

答案 0 :(得分:0)

遗憾的是,这是新手的错误。我重新运行了makemigration并进行了迁移,该功能现在可以正常工作了……可以删除。现在,我需要处理要添加的代码。