在 Django Bootstrap Modal 窗口中编辑记录

Posted

技术标签:

【中文标题】在 Django Bootstrap Modal 窗口中编辑记录【英文标题】:editing records in Django Bootstrap Modal window 【发布时间】:2016-11-06 23:06:21 【问题描述】:

我正在尝试在 Django 中完成一个简单的应用程序,我需要在模式窗口中显示一组数据,对其进行更新然后保存。到目前为止,我能够在模式窗口中显示选定的数据,但我的更改没有保存。单击“保存”按钮后,窗口会很好地关闭,但更改不会反映在数据库中。 href 位于一个文件中,如下所示:

<ul>
% for n in items %
    % if n.status_id != 7 %
        task: n.task_id 
    <li><a href="%  url 'cables.views.add_cycle' id=n.task_id %" id="link" class="btn btn-default"
           type="button" data-toggle="modal" data-target="#myModal"> n.task.sachnr.sachnr </a>
        start:  n.date_start  status:  n.status.status_set.last.status  </li>
    % endif %
% endfor %
</ul>

<div id="myModal" class="modal fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">

        </div>
    </div>

链接所指向的另一个文件 (add_cycle.html) 文件如下所示:

% block content %
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<form action="" enctype="multipart/form-data" method="post" class="upload">

    % csrf_token %

    <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">some header</h4>
<ul>
    <li>sachnr  new_cycle.sachnr.sachnr </li>
    <li>status:  new_cycle.status_set.last.status  od:  new_cycle.status_set.last.date_start  </li>

</ul>

    <input id="id_status_set-TOTAL_FORMS" name="status_set-TOTAL_FORMS" type="hidden" value="1">
    <input id="id_status_set-INITIAL_FORMS" name="status_set-INITIAL_FORMS" type="hidden" value="0">
    <input id="id_status_set-MIN_NUM_FORMS" name="status_set-MIN_NUM_FORMS" type="hidden" value="0">
    <input id="id_status_set-MAX_NUM_FORMS" name="status_set-MAX_NUM_FORMS" type="hidden" value="2">
    <p>
        <label for="id_status_set-0-status">new status:</label>
        <select id="id_status_set-0-status" name="status_set-0-status">
            <option value="" selected="selected"></option>
            % for n in statuslist %
            <option value= n.id > n.name </option>
            % endfor %
        </select>
        <input id="id_status_set-0-task" name="status_set-0-task" type="hidden" value=" new_cycle.id ">
        <input id="id_status_set-0-id" name="status_set-0-id" type="hidden" value=" status.id ">
    </p>
<div class="modal-footer">
    <button class="btn btn-default" type="submit">save</button>
    <a href="% url 'cables_new_task' %" type="button" class="btn btn-default">cancel</a>
</div>

      </div>
    </div>
  </div>
    </form>


</body>
</html>
% endblock %

当我编辑没有模式窗口但使用在新选项卡中打开数据的简单链接的记录时,一切正常。

【问题讨论】:

为什么你的表单中没有表单动作? 您是否在使用多种模式?如果您只有一个,您是否更新了所有输入,包括元素 ID? 你有一个表单动作,或者它是一个modelForm,或者你在js中处理它(用于提交)。告诉我们你是如何处理的。如果您没有任何东西可以处理您的表单,那是正常的(但是当单击按钮关闭窗口时,窗口仍然关闭)。这并不意味着您的表单正在被处理。 你是对的,我在形式上缺少动作。它应该类似于 action="% url 'cables_add_cycle' new_cycle.id %"。添加后,效果很好。 【参考方案1】:

你是对的,我错过了形式上的行动。它应该类似于 action="% url 'cables_add_cycle' new_cycle.id %"。添加后,效果很好。

【讨论】:

以上是关于在 Django Bootstrap Modal 窗口中编辑记录的主要内容,如果未能解决你的问题,请参考以下文章

一个Django插件,用于在Bootstrap模式中创建AJAX驱动的表单。

在 Django Bootstrap Modal 窗口中编辑记录

在 Bootstrap Modal 中使用 django 清晰表单的 AJAX 反馈表单

Django modal Bootstrap 表单的错误处理

python测试开发django-122.bootstrap模态框(modal)学习

将 Django 和 Bootstrap 5 Modal 与 Ajax 结合使用