django表单提交后触发引导模式

2024-05-02

提交 django 表单后如何触发弹出引导模式?

在我的 index.html 模板中,我有一个像这样的标准外观模式

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">
              ...
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
              <button type="button" class="btn btn-primary">Save changes</button>
            </div>
          </div>
        </div>
      </div>

下面在同一个index.html中我有一个django表单

  {{ form.non_field_errors }}
                {% csrf_token %}
                    <ul id="robul">
                      <div class="form-group">
                        <div class="col-xs-6">
                        <li id="name" name="{{ form.name.name }}" class="form-control">{{ form.name }}</li>
                        </div>
                      </div>
                      <div class="form-group">
                        <div class="col-xs-6">
                        <li id="email" class="form-control">{{ form.email }}</li>
                      </div>
                    </div>
                      <div class="form-group">
                        <div class="col-xs-6">
                        <li id="contactmessage" class="form-control">{{ form.contactmessage }}</li>
                      </div>
                    </div>
                    </ul>

在我的 view.py 中,它看起来像这样:

if request.method == 'POST':
        form = forms.FormName(request.POST)

        if form.is_valid():
            contact_name = request.POST.get(
                'name', '')
            contact_email = request.POST.get(
                'email', '')
            form_content = request.POST.get('contactmessage', '')

            template = get_template('contact_template.txt')
            context = {'name': contact_name,
            'email': contact_email,
            'contactmessage': form_content,}
            content = template.render(context)
            mail = EmailMessage("New contact form submission", content, "Some Name" +'', ['[email protected] /cdn-cgi/l/email-protection'],
            headers = {'Reply-To': "[email protected] /cdn-cgi/l/email-protection" })
            mail.send()
    return render(request, 'index.html', {'form': form})

触发它的模态和 JS 代码与 Django 表单提交代码处于不同的上下文中。渲染'index.html'当您从表单提交返回时基本上是全新的,因此它本质上相当于在页面加载时显示模式。但是,也许您只想在成功提交后显示它。您需要做的是使用一些 JS 代码来显示页面加载时的模式,并在模板渲染上下文中添加一些内容来有条件地渲染它。这就是我的想法:

In index.html:

{% if successful_submit %}
    <script type="text/javascript">
        $(document).ready(function(){
            $("#exampleModal").modal('show');
        });
    </script>
{% endif %}

在您的视图函数中,添加successful_submit返回的上下文变量:

return render(request, 'index.html', {'form': form, 'successful_submit': True})

现在<script>仅在以下情况下才会呈现标签successful_submit is True,只有在表单成功后才会设置POST.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django表单提交后触发引导模式 的相关文章

随机推荐

  • Backbone.js 模型默认值和解析

    我有这个Backbone Model代表 Google Books API 卷 var Book Backbone Model extend defaults volumeInfo title n a authors n a publish
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 从 Qt 中的半透明小部件中擦除绘制区域

    我面临着必须擦除 Qt 小部件上先前绘制的区域的问题 基本思想是 用户通过单击并拖动鼠标来选择屏幕的一个区域 并在所选区域上绘制一个矩形 标题 class ClearBack public QWidget Q OBJECT public e
  • 我在 firebase.auth.ApplicationVerifier 中遇到问题

    错误发生在signInWithPhoneNumber 的第二个参数中 我无法解决这个问题 我使用了三种方法来发送 otp 验证 otp 和最后用于验证码 methods sendOTP e e preventDefault if this
  • 在 SQL Server 中实现一对零或一关系

    我正在使用 Entity Framework 4 1 数据库第一种方法 我使用过旧数据库 在我的 edmx 文件中 它根据旧数据库中的表创建实体类 有一个一对零或一某些实体之间的关联 尽管我探索了数据库表以及它们之间的关系 但我不知道如何一
  • CTRL+C 和 CTRL+Break 不同吗?

    我一直认为它们绝对是一样的 但我刚刚在以下位置找到了一些值 CTRL C EVENT 和 CTRL BREAK EVENT设置控制台Ctrl处理程序 http msdn microsoft com en us library ms68601
  • 在 php 中比较两个日期的正确方法是什么? [复制]

    这个问题在这里已经有答案了 我需要将数据库中的日期与当天进行比较 这是我的代码 雄辩地说 posts Post where date date Y m d gt get 我只想检索今天的帖子 知道 日期 字段的类型为日期 我该如何使其工作
  • IIFE 和 call 的区别

    之间有区别吗 function call this and function or var MODULE function this hello world call MODULE and var MODULE function m m h
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • HSQLDB - 这是主数据库文件

    我在嵌入模式下使用 HSQLDB jdbc hsqldb file abc TESTDB 创建数据库后 文件夹abc有以下文件 TESTDB lck TESTDB script TESTDB log TESTDB properties 我的
  • 在 AWS Elastic Beanstalk 中部署 Flask 应用程序

    当我部署 Flask 应用程序时 它显示成功 但是当我检索日志时 我看到错误 找不到 Flask 我的需求文件中有烧瓶 任何帮助 Sat Jan 11 06 51 50 503908 2020 error pid 3393 remote 1
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • 使用 PixelWriter 在 JavaFX Canvas 上进行透明绘图

    有谁知道为什么使用drawImage 在Canvas上进行透明度绘制工作得很好 但在PixelWriter上却根本不起作用 我最初认为这可能与画布 上下文上的混合或其他模式 设置有关 但还没有任何运气 我需要每个像素的可变透明度 而不是整个
  • android setOnLongClickListner 不适用于 onTouch 事件

    我有一个可拖动和缩放的图像视图 但现在我还需要将 setOnLongClickListner 放在我的图像视图上 我已经这样做了 但它不起作用 但是当我禁用 ontouch 事件时它开始工作 谁能告诉我如何解决这个问题 这是我的代码 ima
  • 使所有打开的文档选项卡可见

    我想查看我在 Visual Studio 中打开的所有文件或文档 我不希望它们自动隐藏或溢出时隐藏 我怎样才能实现它 执行此操作的内置选项之一 使用固定选项卡 http dailydotnettips com 2016 01 21 pers
  • 如何将主菜单添加到 xib

    我从 xib 文件中删除了主菜单 我怎样才能重新创建它而不需要处理它 另一个新创建的xib 我似乎找不到如何告诉 IB 我从对象库添加的菜单实际上是主应用程序菜单 你不能 您过去可以简单地连接mainMenu菜单的出口 但从 Xcode 4
  • 如何将当前日期分配给 odoo v8 中的日期字段?

    我想将当前日期分配给以下代码中的日期字段 start date calendar obj create cr uid name rec res act ion user id rec res asgnd to id start date l
  • 快速以编程方式清除 NSView

    我有一个NSView连接到自定义类 该视图上有一些图画 class LineDrawer NSView var linear NSBezierPath var storage NSUserDefaults standardUserDefau
  • 解析 dockerfile 路径时出错:请使用 --dockerfile 在构建上下文中提供 Dockerfile 的有效路径

    apiVersion v1 kind Pod metadata name kaniko spec containers name kaniko image gcr io kaniko project executor latest args
  • django表单提交后触发引导模式

    提交 django 表单后如何触发弹出引导模式 在我的 index html 模板中 我有一个像这样的标准外观模式 div class modal fade div class modal dialog div class modal co