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

单元测试包含多个提交按钮的Django表单

单元测试是在开发过程中,对一个模块或功能进行测试的过程。在Django中,单元测试可以使用Python的unittest模块来进行。在这个例子中,我们将讨论如何对包含多个提交按钮的Django表单进行单元测试。

首先,我们需要创建一个Django表单,其中包含多个提交按钮。以下是一个简单的示例:

代码语言:python
复制
from django import forms

class MyForm(forms.Form):
    name = forms.CharField(max_length=100)
    age = forms.IntegerField()

    def clean(self):
        cleaned_data = super().clean()
        name = cleaned_data.get("name")
        age = cleaned_data.get("age")

        if name and age:
            raise forms.ValidationError("Invalid input")

    def save(self):
        # Save the form data to the database
        pass

接下来,我们将创建一个单元测试来测试这个表单。在这个测试中,我们将模拟两个不同的提交按钮,并验证表单的验证是否正确。

代码语言:python
复制
from django.test import TestCase
from django.http import HttpRequest
from django.forms import Field
from .forms import MyForm

class MyFormTest(TestCase):
    def test_form_validation(self):
        # Test with valid data
        form_data = {"name": "John", "age": 30}
        form = MyForm(form_data)
        self.assertTrue(form.is_valid())
        form.save()

        # Test with invalid data
        form_data = {"name": "John", "age": 30}
        form = MyForm(form_data)
        self.assertFalse(form.is_valid())

在这个测试中,我们首先测试了包含有效数据的表单。然后,我们测试了包含无效数据的表单,以确保表单验证正常工作。

最后,我们可以运行这个单元测试,以确保我们的表单按预期工作。这个测试可以帮助我们发现任何潜在的问题,并确保我们的代码能够正确处理多个提交按钮。

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

相关·内容

Django -- 如何优雅提交表单

前言 前面的内容我们基本上以 get请求作为例子,那 post请求Django是如何处理呢?本章内容我们就来介绍Django如何发起和处理 post请求。...,提交这个表单会改变服务端数据,所以我们将 method="post" ,并且我们将action 设置为 {%url'demo_app:add'%}, 这表明了了我们会像 demo_app/views...{%csrf_token%} 是Django 用来防止跨站点请求伪造。Django 内部POST表单都要如此。 视图 我们还要创建一个视图来实现这个新增cat 功能。...request.POST 是一个类字典对象,让你可以通过关键字名字获取提交数据,需要注意是,返回值永远是字符串。...Django 为此提出了一种较为简便方法Form ,Django表单有一下两个作用: 渲染表单模板 验证数据是否合法 下面我们来介绍下他使用。

3.2K20

解决Django提交表单报错:CSRF token missing or incorrect问题

1、在Django提交表单时报错:Django提交表单报错: CSRF token missing or incorrect 具体报错页面如下: ?...该表单有一个有效CSRF令牌。在登录另一个浏览器选项卡或登录后单击back按钮之后,您可能需要使用表单重新加载页面,因为登录后令牌会旋转。...我又有疑问了,同一次登录,form表单token每次都会变,而cookie中token不便,django把那个salt存储在哪里才能保证验证通过呢。 直到看到源码。...django会验证表单token和cookie中token是否能解出同样secret,secret一样则本次请求合法。...以上这篇解决Django提交表单报错:CSRF token missing or incorrect问题就是小编分享给大家全部内容了,希望能给大家一个参考。

4.6K30

小白前端入门笔记(19),form表单加入提交按钮

大家好,欢迎来到freecodecamp HTML专题第19篇。 今天挑战关于form表单添加提交按钮。...背景知识 在上一次挑战当中我们尝试了给一个input元素添加form表单,但是我们只是添加了表单是不够,用户填好了信息但是少了一个触发上传按钮。...所以今天我们就来说说怎么给form表单添加一个提交按钮。 添加方法非常简单,在HTML当中专门有一个标签就叫做button,它可以在页面上创建一个按钮。...但是并不是随便一个按钮就可以提交信息,我们必须要保证它类型是"submit",这样将它放在表单当中,就可以提交信息了。...要求 你form必须要有button按钮提交按钮必须要有type="submit" 你提交按钮必须要有文本"Submit" 你按钮元素需要有closing tag 编辑器 CatPhotoApp

1.3K30

layui踩坑记录之form表单button按钮默认自动提交

首先参考下面这篇文章: layui form表单button按钮会自动提交表单问题以及解决方案_layui form里面其他button按钮_你用点心就行博客-CSDN博客 他说已经很清楚了...,我再补充(啰嗦)一下: 其实就是使用form时候,应该对应有一个提交按钮,配套使用。...layui官网说也是比较清楚,通过给按钮button加上“lay-submit”属性来表示它作为一个提交按钮,标准写法如下: <button class="layui-btn" lay-submit...官方文档地址: 表单组件 form - Layui 文档 因此,当我们在使用form时候,如果没有添加标准提交按钮,会自动默认把其他普通按钮认为是提交按钮,因为buttontype默认值为“submit...使用时注意: 1.在form中使用button时添加type属性:button、submit、reset; 2.在不需要提交场景使用form时尽量使用a标签按钮来代替button,比如筛选功能中查询按钮

32320

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

在浏览器中点击表单提交按钮发起请求,如果表单method设置为post则为post请求。 encoding:一个字符串,表示提交数据编码方式。...FILES:一个类似于字典对象,包含所有的上传文件。 COOKIES:一个标准Python字典,包含所有的cookie,键和值都为字符串。...QueryDict对象 定义在django.http.QueryDict HttpRequest对象属性GET、POST都是QueryDict类型对象 与python字典不同,QueryDict类型对象用来处理同一个键带有多个情况...问:表单form如何提交参数呢? 答:表单控件name属性值作为键,value属性值为值,构成键值对提交。 如果表单控件没有name属性则不提交。...对于checkbox控件,name属性值相同为一组,被选中项会被提交,出现一键多值情况。 键是表单控件name属性值,是由开发人员编写。 值是用户填写或选择

1.5K20

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

它将显示一个标签为”Your name:”文本字段,和一个”OK”按钮。如果模板上下文包含一个current_name 变量,它将用于预填充your_name 字段。...你将需要一个视图来渲染这个包含HTML 表单模板,并提供合适current_name 字段。 当表单提交时,发往服务器POST 请求将包含表单数据。...实际应用中,一个表单可能包含几十上百个字段,其中大部分需要预填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...="your_name" maxlength="100"> 注意它不包含 标签和提交按钮。...表单渲染选项 表单模板额外标签 不要忘记,表单输出不 包含标签,和表单submit 按钮。你必须自己提供它们。

4.2K20

107-Django开发医院管理系统(医生-患者-医院管理员)

设计数据库模型用户模型:扩展DjangoAbstractUser模型,添加必要字段如role(角色)来区分患者、医生和管理员。医生模型:包含医生专业信息,如姓名、专业、联系方式等。...患者模型:包含患者个人信息,如姓名、性别、出生日期、联系电话等。发票模型:包含发票详细信息,如费用项目、金额、日期等。预约模型:包含预约详细信息,如患者、医生、预约时间等。3....使用Django模板系统来渲染HTML页面,并包含必要JavaScript和CSS文件。5. 表单处理创建Django表单来处理用户输入,如注册表单、登录表单、医生申请表单等。...前后端交互使用JavaScript(可能结合jQuery或更现代框架如Vue.js、React)来处理前端逻辑和与后端交互。通过AJAX请求从后端获取数据或提交表单。9....使用Django内置测试工具或第三方测试框架编写单元测试和功能测试。部署系统到生产环境,并进行性能优化和安全性检查。12. 文档编写编写用户手册,向用户介绍系统功能和使用方法。

8200

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

1. html表单django表单区别 HTML中表单: 单纯从前端html来说,表单是用来提交数据给服务器,不管后台服务器用Django还是PHP语言还是其他语言。...只要把input标签放在form标签中,然后再添加一个提交按钮,那么以后点击提交按钮,就可以将input标签中对应提交给服务器了。...Django表单 Django表单丰富了传统HTML语言中表单。在Django表单,主要做以下两件事 渲染表单模板。 表单验证数据是否合法。...这样就可以生成一个表单了 2.1. django 表单常用Field 使用Field可以是对数据验证第一步。你期望这个提交上来数据是什么类型,那么就使用什么类型Field。...return telephone 以上是对某个字段进行验证,如果验证数据时候,需要针对多个字段进行验证,那么可以重写clean方法。比如要在注册时候,要判断提交两个密码是否相等。

3.1K40

Django教程(二)- Django视图与网址进阶1. HTML表单2.CSRF3.代码操作

HTML表单 HTML 表单用于搜集不同类型用户输入。 表单是一个包含表单元素区域。...(Submit Button) 定义了提交按钮....当用户单击确认按钮时,表单内容会被传送到另一个文件。表单动作属性定义了目的文件文件名。由动作属性定义这个文件通常会对接收到输入数据进行相关处理。...在返回 HTTP 响应 cookie 里,django 会为你添加一个 csrftoken 字段,其值为一个自动生成 token 在所有的 POST 表单时,必须包含一个 csrfmiddlewaretoken...字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面) 在处理 POST 请求之前,django 会验证这个请求 cookie 里 csrftoken 字段值和提交表单

4.3K40

Django Web 极简教程(六)- Django Form(Part A)

这是我参与「掘金日新计划 · 6 月更文挑战」第28天,点击查看活动详情 一、Form 表单 普通 Form 表单 表单是在浏览器中用于收集后端需要信息并提交给后端一个工具,常见表单如:登录表单...、注册表单、请假表单等,表单分为四个部分:表单提交地址、表单提交方法、表单组件、表单提交按钮。...:提交按钮,类型为 submit Django Form 表单 类似 Flask 集成 WTForms,Django Form 也可以模拟生成前端...CSRF 报错 在 register.html 表单中添加 {% csrf_token %} 解决 CSRF 报错,再次输入数据,点击注册按钮,控制台中输出了表单提交信息 之后就可以根据表单提交信息与数据库交互执行...) 在 Django Form 中填入数据并点击注册按钮,控制台成功输出Django Form 中提交数据

92510

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

一个简单表单 更新一下在上一个教程中编写投票详细页面的模板polls/detail.html,让它包含一个HTML 元素: # polls/templates/polls/detail.html...每个单选按钮value属性是对应各个ChoiceID。每个单选按钮name是"choice"。...这意味着,当有人选择一个单选按钮提交表单提交时,它将发送一个POST数据choice=#,其中# 为选择ChoiceID。...这是HTML表单基本概念; action表示你要发送目的url,method表示提交数据方式; forloop.counter表示for循环次数; 由于我们发送了一个POST请求...现在,创建一个Django视图来处理提交数据,在Part3中已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?

2.3K40

Django 博客实现简单全文搜索

整个搜索过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入结果到服务器。...name 属性,当用户在这个 input 中输入搜索内容并提交表单后,键入数据会以键值对形式提交服务器,这个键名字就是通过 name 属性指定。...这样服务器就可以根据 name 值来取得用户输入内容。 用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 Django 后台服务器。...用户通过表单 get 方法提交数据 Django 为我们保存在 request.GET 里,这是一个类似于 Python 字典对象,所以我们使用 get 方法从字典里取出键 q 对应值,即用户搜索关键词...接下来我们做了一个小小校验,如果用户没有输入搜索关键词而提交表单,我们就无需执行查询,我们给给用户发一条错误提醒消息,这里使用了 django messages 应用,这在 交流桥梁:评论功能中讲过

67720

简单全文搜索

概述 博客文章通常包含标题和正文两个部分。当用户输入某个关键词进行搜索后,我们希望为用户显示标题和正文中含有被搜索关键词全部文章。...整个搜索过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入结果到服务器。...表单 action 属性值为 {% url 'blog:search' %}(虽然我们还没有写这个视图函数),表明用户提交结果将被发送给 blog 应用下 search 视图函数对应 URL。...用户通过表单 get 方法提交数据 Django 为我们保存在 request.GET 里,这是一个类似于 Python 字典对象,所以我们使用 get 方法从字典里取出键 q 对应值,即用户搜索关键词...接下来我们做了一个小小校验,如果用户没有输入搜索关键词而提交表单,我们就无需执行查询,我们就在模板中渲染一个错误提示信息。

1.9K60

django 实现简单搜索功能

本文将结合 django 模型管理器 filter 方法和 icontains 查询表达式来实现一个简单搜索功能。 以博客为例,博客文章通常包含标题和正文两个部分。...整个搜索过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入结果到服务器 服务器接收到用户输入搜索关键词 “django” 后去数据库查找文章标题中含有该关键词全部文章...用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 django 后台服务器。表单 action 属性值为 /search/,表明用户提交结果将被发送给 /search/ 这个 URL。...用户通过表单提交数据 django 为我们保存在 request.GET 里,这是一个类似于 Python 字典对象,所以我们使用 get 方法从字典里取出键 q 对应值,即用户搜索关键词。...接下来我们做了一个小小校验,如果用户没有输入搜索关键词而提交表单,我们就无需执行查询,而是渲染一个错误页面提示用户请输入关键词。

12.3K80

Django学习笔记之Django Form表单详解

实际应用中,一个表单可能包含几十上百个字段,其中大部分需要预填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...="your_name" maxlength="100">  注意它不包含  标签和提交按钮。...注:Django 原生支持一个简单易用跨站请求伪造防护。当提交一个启用CSRF 防护POST 表单时,你必须使用上面例子中csrf_token 模板标签。...回到顶部 Django Form 类详解 绑定和未绑定表单实例 绑定和未绑定表单 之间区别非常重要: 未绑定表单没有关联数据。当渲染给用户时,它将为空或包含默认值。...绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

4.6K10

01.前端之HTML

,比如文本字段、复选框、单选框、提交按钮等等。     ...表单还可以包含textarea、select、fieldset和 label标签。 表单属性 属性 描述 accept-charset 规定在被提交表单中使用字符集(默认:页面字符集)。...表单一般用来收集用户输入信息     表单工作原理:     访问者在浏览有表单网页时,可填写必需信息,然后按某个按钮提交。这些信息通过Internet传送到服务器上。     ...点击提交按钮,input中type=submit那个按钮,然后就会将form表单中所有用户输入内容或者选择内容({name属性:值,})都发给服务端(以我们自己写那个socket举例,打印一下接收内容...注意:       form表单提交数据时候,必须有个submit按钮   下面这个django示例,等我学django时候再说吧: from django.conf.urls import url

1.1K20
领券