首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据django模板中不同的提交按钮在更新视图中自定义成功url?

在Django中,可以使用不同的提交按钮来根据需要自定义成功的URL。以下是实现该功能的步骤:

  1. 首先,在你的Django模板中,给不同的提交按钮添加一个唯一的name属性值,并在表单中使用相同的form标识符。例如,给两个按钮分别设置name属性为"button1"和"button2":
代码语言:txt
复制
<form method="post" action="{% url 'update_view' %}">
    {% csrf_token %}
    <input type="submit" name="button1" value="按钮1">
    <input type="submit" name="button2" value="按钮2">
</form>
  1. 在你的视图函数中,通过request.POST字典检查哪个按钮被点击了,并在相应的条件下进行处理。可以通过检查按钮的name属性值来确定哪个按钮被点击了。
代码语言:txt
复制
from django.shortcuts import redirect

def update_view(request):
    if request.method == 'POST':
        if 'button1' in request.POST:
            # 处理按钮1的逻辑
            return redirect('success_url_1')  # 自定义成功URL1
        elif 'button2' in request.POST:
            # 处理按钮2的逻辑
            return redirect('success_url_2')  # 自定义成功URL2
    return render(request, 'update_template.html')
  1. 在urls.py文件中定义相应的URL模式,并将自定义的成功URL与视图函数关联起来。
代码语言:txt
复制
from django.urls import path

urlpatterns = [
    path('update/', update_view, name='update_view'),
    path('success-url1/', success_url_1_view, name='success_url_1'),
    path('success-url2/', success_url_2_view, name='success_url_2'),
]

在以上步骤中,按钮1的点击将会导致重定向到名为"success_url_1"的URL,而按钮2的点击将会重定向到名为"success_url_2"的URL。你可以在相应的视图函数中编写逻辑来处理这些自定义成功URL。

注意:这里没有提到具体的腾讯云产品和链接地址,你可以根据具体需求选择适合的腾讯云产品,例如对象存储COS、云服务器CVM、数据库TencentDB等。请参考腾讯云官方文档了解更多关于这些产品的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django 1.8 官方文档翻译: 5-1-1 使用表单

另一个方面,GET 适合网页搜索这样的表单,因为这种表示一个GET 请求的URL 可以很容易地作为书签、分享和重新提交。 Django 在表单中的角色 处理表单是一件很复杂的事情。...Django 会处理表单工作中的三个显著不同的部分: 准备并重新构造数据 为数据创建HTML 表单 接收并处理客户端提交的表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...实例化、处理和渲染表单 在Django 中渲染一个对象时,我们通常: 在视图中获得它(例如,从数据库中获取) 将它传递给模板上下文 使用模板变量将它扩展为HTML 标记 在模板中渲染表单和渲染其它类型的对象几乎一样...在模型实例不包含数据的情况下,在模板中对它做处理很少有什么用处。但是渲染一个未填充的表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般从数据库中获取它。...在发送HTTP 重定向给浏览器告诉它下一步的去向之前,我们可以用这个数据来更新数据库或者做其它处理。 模板 我们不需要在name.html 模板中做很多工作。

4.3K20

第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

我们知道每一个 URL 对应着一个 django 的视图函数,于是 django 调用这个视图函数,我们在视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据到数据库中,...另外一种想法是使用自定义的模板标签,我们在 页面侧边栏:使用自定义模板标签[6] 中详细介绍过如何自定义模板标签来渲染一个局部的 HTML 页面,这里我们使用自定义模板标签的方法,来渲染表单页面。...然后我们定义一个 inclusion_tag 类型的模板标签,用于渲染评论表单,关于如何定义模板标签,在 页面侧边栏:使用自定义模板标签[7] 中已经有详细介绍,这里不再赘述。...具体过程在代码中已有详细注释,这里仅就视图中出现了一些新的知识点进行讲解。...两个地方需要发送消息,第一个是当评论成功,即评论数据成功保存到数据库后,因此在 comment 视图中加一句。

1.7K20
  • django 1.8 官方文档翻译: 1-2-4 编写你的第一个Django应用,第4部分

    编写一个简单的窗体 让我们把在上一篇教程中编写的 poll 的 detail 模板更新下,在模板中包含 HTML 的 组件: {{ poll.question }} {% if error_message...: 上面的模板中为每个投票选项设置了一个单选按钮。...此函数有助于避免在视图中硬编码 URL 的功能。它指定了我们想要的跳转的视图函数名以及视图函数中 URL 模式相应的可变参数。... 现在,在浏览器中访问 /polls/1/ 并完成投票。每次投票后你将会看到结果页数据都有更新。 如果你没有选择投票选项就提交了,将会看到错误的信息。...这些视图代表了基本的 Web 开发中一种常见的问题: 根据 URL 中的参数从数据库中获取数据,加载模板并返回渲染后的内容。

    1.5K10

    Django搭建blog网站(二)

    更好的解决方案是直接在模板中获取,为此,我们使用 Django 的一个新技术:自定义模板标签来完成任务。...使用模板标签的思路 我们前面已经接触过一些 Django 内置的模板标签,比如比较简单的 {% static %} 模板标签,这个标签帮助我们在模板中引入静态文件。...这里唯一的不同是我们从数据库获取文章列表的操作不是在视图函数中进行,而是在模板中通过自定义的 {% get_recent_posts %} 模板标签进行。...函数就这么简单,但目前它还只是一个纯 Python 函数,Django 在模板中还不知道该如何使用它。...包括如何编写模型(Model)、如何编写视图函数(View)、如何使用 Django 内置的模板系统(Template)以及如何配置路由(URL),这四大模块是 Django 开发的核心所在,现在我们已经能够基本掌握这些模块的使用方法了

    4.5K100

    Django快速入门——投票程序(4,6)表单&界面、风格

    第4部分(表单) 编写一个简单的表单 我们更新一下在上一个教程中编写的投票详细页面的模板 ("polls/detail.html") ,让它包含一个 HTML 元素(即表单) 按钮并提交表单提交时,它将发送一个POST数据 choice=# ,其中#为选择的Choice的ID。这是 HTML表单的基本概念。...简而言之,所有针对内部URL的POST表单都应该使用 {% csrf_token %}模板标签。 现在,让我们来创建一个Django视图来处理提交的数据。...URL(请继续看下去,我们将会解释如何构造这个例子中的URL)。...因为 AppDirectoriesFinder 的存在,你可以在 Django 中以 polls/style.css 的形式引用此文件,类似你引用模板路径的方式。

    27720

    Django框架开发016期 数据的更新,用户信息更新页面开发

    本节主要为朋友介绍通过django的orm模式如何更新用户的信息,你会发现使用django开发网站,在数据操作上变得更加简单! 本节教程属于《刘金玉的Django网站开发课程》电子书第五章第六节。...这个url跳转过去的页面需要我们自行创建。 第2步:创建url路由规则。 首先我们在路由中增加一条新的url路由规则,这里我们使用与以往不同的路由规则,就是传参的功能,应该如何写呢?...>,大家注意,这个就是Django框架中由url传递给视图函数参数的一种方法。...当我们点击“编辑”页面上的“更新”按钮后,当前更新的数据会传递到表单对应的数据更新保存的路由,对应form标签的action属性的实际路由url是/saveuser/{{currentUser.userID...然后,我们点击“更新”按钮,发现“更新成功”的页面,如下图所示。 我们点击“返回用户列表”页以后,观察更新的数据是否生效,如下图所示。 我们发现数据更新生效成功!

    11310

    Django-form表单

    在Django 中构建一个表单 Form 类 我们已经计划好了我们的 HTML 表单应该呈现的样子。在Django 中,我们的起始点是这里: ?...这是我们在第一个访问该URL 时预期发生的情况。 如果表单的提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求中的数据填充它:form = NameForm(request.POST)。...在发送HTTP 重定向给浏览器告诉它下一步的去向之前,我们可以用这个数据来更新数据库或者做其它处理。 模板 我们不需要在name.html 模板中做很多工作。最简单的例子是: ?...注:Django 原生支持一个简单易用的跨站请求伪造的防护。当提交一个启用CSRF 防护的POST 表单时,你必须使用上面例子中的csrf_token 模板标签。...字段的数据 不管表单提交的是什么数据,一旦通过调用is_valid() 成功验证(is_valid() 返回True),验证后的表单数据将位于form.cleaned_data 字典中。

    3.9K70

    Python Django开发 经验技巧总结(一)

    -这个是django中的一个标签,用于防止恶意攻击使用,如果不加入这个标签,会遇到不能提交的问题,处理麻烦一点,建议加上。...已经发生的错误信息 该功能运用了django.contrib.messages这个库,在django项目中setting.py文件中APP注册部分自定义注册 INSTALLED_APPS = [...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带的admin管理器,那么该字段在admin...7.获取已登录用户的名字 在 views里取值是request.user.username,在模板页面取值是{{request.user}},判断是否通过验证是{% if request.user.is_authenticated...() 执行时,让数据库去根据数据库当前的值进行更新操作; 一旦当前对象被存储时,我们必须重新加载当前对象以获取到当前数据库中最新的值。

    1.4K10

    Django 1.10中文文档-第一个应用Part4-表单和通用视图

    这意味着,当有人选择一个单选按钮并提交表单提交时,它将发送一个POST数据choice=#,其中# 为选择的Choice的ID。...现在,创建一个Django视图来处理提交的数据,在Part3中已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?...这个函数可以避免在视图函数中硬编码URL。它需要我们给出想要跳转的视图的名字和该视图所对应的URL模式中需要给该视图提供的参数。...唯一的不同是模板的名字。稍后再来优化这个问题。... 现在,在浏览器中访问/polls/1/然后为Question投票。应该看到一个投票结果页面,并且在每次投票后都会更新。 如果提交时没有选择任何Choice,应该会看到错误信息。

    2.4K40

    django 1.8 官方文档翻译:13-1-2 使用Django认证系统

    对于需要与默认配置不同需求的项目,Django支持扩展和自定义认证。 Django的认证同时提供认证和授权,并通常统一称为认证系统,因为这些功能某些地方是耦合的。...在Django的认证框架中只存在一种类型的用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集的user对象,而不是不同类型的user对象。...你应该为你想要使用的视图创建自己的模板。模板的上下文定义在每个视图中,参见所有的认证视图. 使用视图 有几种不同的方法在你的项目中使用这些视图。...如果通过POST调用并带有用户提交的凭证,它会尝试登入该用户。如果登入成功,该视图重定向到next中指定的URL。...可以覆盖来自定义邮件如何发送给用户。

    4.7K20

    37.Django1.11.6文档

    在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查: 在模板中:使用url 模板标签。 在Python代码中:使用reverse()函数。...指定自定义模板标签和过滤器的最常见的地方在Django应用程序中。...实例化、处理和渲染表单 在Django 中渲染一个对象时,我们通常: 在视图中获得它(例如,从数据库中获取) 将它传递给模板的context 使用模板变量将它扩展为HTML 标记 除了几个关键点不同之外...在发送HTTP 重定向给浏览器告诉它下一步的去向之前,我们可以用这个数据来更新数据库或者做其它处理。 (3)模板 我们不需要在name.html 模板中做很多工作。...return kwargs 在视图和模板中使用表单集 在视图中使用表单集就像使用标准的Form 类一样简单, 唯一要做的就是确信你在模板中处理表单。

    24.4K80

    Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象

    关于视图的篇章 Django 2.1.7 视图 Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据 Django 2.1.7 视图 - 自定义404错误、500错误 在前面的篇章基本讲述了视图的使用...在浏览器中给出地址发出请求采用get方式,如超链接。 在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。...session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持时才可用。 运行服务器,在浏览器中浏览首页,可以在浏览器“开发者工具”中看到请求信息如下图: ?...QueryDict对象 定义在django.http.QueryDict HttpRequest对象的属性GET、POST都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况...问:表单form如何提交参数呢? 答:表单控件name属性的值作为键,value属性的值为值,构成键值对提交。 如果表单控件没有name属性则不提交。

    1.5K20

    django配置文件详解_django配置redis

    ) 配置属性设置后,还需要将media文件夹注册到django中,让django知道如何找到媒体文件,否则无法在浏览器上访问该文件夹的文件信息。...模板配置信息 使用前后端分离框架,这里暂不描述 数据库配置 待更新 中间件配置 中间件(Middleware)是一个用来处理Django的请求(Request)和响应(Response)的框架级别的钩子...开发者可以根据自己的开发需求自定义中间件,只要将自定义的中间件添加到配置属性MIDDLEWARE中即可激活 一般情况下,Django默认的中间件配置均可满足大部分开发需求,我们在项目中MIDDLEWARE...*PhantomJS.*') ] 如果开发者在定义url的时候,最后有一个斜杠。但是用户在访问url的时候没有提交这个斜杠,那么CommonMiddleware会自动的重定向到加了斜杠的url上去。...(比如银行网站)的转账按钮定位到病毒网站的按钮上,这样用户在点击病毒网站上按钮的时候,实际上点击的是受攻击的网站(比如银行网站)上的按钮,从而实现了在不知不觉中给攻击者转账的功能。

    1.2K10

    Django 学习笔记之表单

    target 属性:规定 action 属性中地址的目标(默认:_self)。如果填写值 _blank ,当点击按钮提交数据时,在新窗口中打开新的页面。 常用表单元素有以下这些: 中的某些属性我不需要显示在页面上,或数据处理方式比较复杂,这个时候你就需要自定义 Form。自定义 Form 是直接继承 Form。...3.3 视图层的处理 在视图文件 view.py 中, 可以获取、过滤到用户提交的数据。..." /> 我在 url.py 定义表单的路径是: from django.contrib import admin from django.urls...3.4 美化模板 我们虽然成功把表单内容渲染到页面上,但是页面有点丑陋。你可能会无法忍受,想把页面修改得美观一点,顺便也秀秀自己的 Bootstrap 知识。

    2.6K30

    Django学习-第十三讲(下):表单(一)forms.form、forms.modelform

    1. html表单和django中的表单的区别 HTML中的表单: 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言。...只要把input标签放在form标签中,然后再添加一个提交按钮,那么以后点击提交按钮,就可以将input标签中对应的值提交给服务器了。...Django中的表单 Django中的表单丰富了传统的HTML语言中的表单。在Django中的表单,主要做以下两件事 渲染表单模板。 表单验证数据是否合法。...form标签,然后在里面使用了table标签来进行美化,在使用form对象渲染的时候,使用的是table的方式,当然还可以使用ul的方式(as_ul),也可以使用p标签的方式(as_p),并且在后面我们还加上了一个提交按钮...2.3. django 表单自定义验证 有时候对一个字段验证,不是一个长度,一个正则表达式能够写清楚的,还需要一些其他复杂的逻辑,那么我们可以对某个字段,进行自定义的验证。

    3.3K40

    安全攻城狮的大救星 | Savio-渗透测试报告自动生成工具

    ,根据提交数据、漏洞类型、时间等进行统计报表,当前用户管理模块仅允许通过Django后台进行修改。...l项目管理:根据项目的不同可上传项目的专属渗透测报告模板,并可以根据需要进行模板自定义模板(/Demo/demo.docx); l模板自定义:不用修改源代码,仅需修改word即可进行模板自定义; l整改建议管理...模板自定义 目前根据我经常使用的渗透测试报告模板生成了一个demo版本(请参考/Demo/demo.docx)。...当然您也可以根据自己的需求进行模板自定义,其中仅需在WORD模板中进行参数替换,目前Savior中具体参数如下: - {{report_no}} - 漏洞编号,通过时间戳自动生成,确保漏洞编号的唯一性...提交后会自动生成渗透测试报告并进行下载。 打开报告会提示更新域,更新请选择是,再选择更新整个目录,此问题主要是为了更新目录,不然渗透测试报告中目录无法自动更新。

    1.2K30

    后端框架学习-Django

    参数=值&参数=值 信息片段:#subject锚点,直接定位到网页指定位置 Django如何处理URL?...在该模式下依然存在控制层C,即主路由 Django模板层 模板层创建 模板:根据字典数据动态变化的html网页,根据视图中传递的字典数据动态生成相应的html页面 模板配置: 创建模板文件夹 ...语法——父模板中: 定义父模板中的块block标签 识别出哪些在子模板是允许被修改的 block标签:在父模板中定义,在子模板中覆盖 语法——子模板中: 继承模板extends标签(写在模板第一行)...重写,则按照重写效果显示 注意: 模板继承时,服务器的动态内容无法继承 url反向解析 代码中url的位置: 1.模板 超链接 form表单 form action 将表单中的数据用...POST的方法提交到url 2.视图函数中 - 302跳转 HttpResponseRedirect(‘url’) 将用户地址栏中的地址跳转到url 代码中的url书写规范 1.绝对地址:http://

    9.6K40

    Django—入门

    Django框架根据我们设计的模型类生成了迁移文件,在迁移文件中我们可以看到fields列表中每一个元素跟BookInfo类属性名以及属性的类型是一致的。...在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。 ?...上去 6.模板 如何向请求者返回一个漂亮的页面呢? 肯定需要用到html、css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()的参数吗?...在Django中,将前端的内容定义在模板中,然后再把模板交给视图调用,各种漂亮、炫酷的效果就出现了。...{{ li }} {% endfor %} 在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。

    1.9K10

    Django简介

    from是MySQL的关键字,不要弄混淆了。否则点击提交按钮,是没有反应的 在form表单中,有GET和POST。它是根据method属性决定的!一般表单使用POST 再次访问url,输入表单信息,点击提交。 输出ok,表示正常。注意:这里还没有做登录认证,下面会讲到! ?...首先是用户在浏览器输入url:http://127.0.0.1:8000/login/ 2. django接收到请求之后,根据URL控制器匹配视图函数 3....如果没有响应,就会报错 在视图函数中,render是渲染的意思。那么它是如何工作的呢?...但是render没传,那么页面中{{变量}} 会被替换为空。 如果模板里面,写了{{ }} 。变量名没写,那么页面报错 思考:如何点击时间的时候,变成红色?

    1.7K20

    Django 2.1.7 模板 - CSRF 跨站请求伪造

    相关篇章 Django 2.1.7 创建应用模板 Django 2.1.7 配置公共静态文件、公共模板路径 Django 2.1.7 模板语言 - 变量、标签、过滤器、自定义过滤器、模板注释 Django...CSRF示意图如下: 如果想防止CSRF,首先是重要的信息传递都采用POST方式而不是GET方式,接下来就说POST请求的攻击方式以及在Django中的避免。...9)点击浏览器的第一个标签即网站A,点击"发帖"按钮后如下图: 10)点击浏览器的第二个标签即网站B,点击“发帖”按钮后如下图: 通过action直接访问网站A的地址,成功执行发帖。...', 'django.middleware.csrf.CsrfViewMiddleware', ) 2)回到windows浏览器中,分别在网站A、网站B中点击“提交”按钮,效果一样,如下图: 3...{% csrf_token %} 4)回到windows浏览器中,在网站A中点击“提交”按钮,效果如下图: 5)回到windows浏览器中,在网站B中点击“提交”按钮,效果如下图: 好了,Django中成功完成

    1.9K20
    领券