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

Django -- 如何优雅的提交表单

前言 前面的内容我们基本上以 get请求作为例子,那 post请求Django是如何处理的呢?本章内容我们就来介绍Django如何发起和处理 post请求的。...---- 一个简单的表单 就拿我们的Cat类来说,之前新增Cat对象都是通过admin后台或者数据库API来操作,现在我们尝试通过前端页面来添加Cat对象。...{%csrf_token%} 是Django 用来防止跨站点请求伪造。Django 内部的POST表单都要如此。 视图 我们还要创建一个视图来实现这个新增cat 的功能。...Django 为此提出了一种较为简便的方法Form ,Django 中的表单有一下两个作用: 渲染表单模板 验证数据是否合法 下面我们来介绍下他的使用。...form.is_valid() 表示对POST请求中的数据按照当时定义表单字段时定义的规则校验。

3.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python测试开发django-109.ModelForm模型表单的使用

    前言 django的表单有2种:forms.Form 和 forms.ModelForm。ModelForm顾名思义是将模型和表单结合起来,这个功能是非常强大的!...Model模型 Model模型设计如下 from django.db import models # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com...blank=True, null=True) comment = models.TextField() birth = models.DateTimeField() ModelForm模型表单...Meta中属性 属性 说明 model 必须项,对应的Model中的类 fields 字段,如果是all,就是表示列出所有的字段 exclude 排除的字段 labels 提示信息 help_texts...帮助提示信息 widgets 自定义插件 error_messages 自定义错误信息 field_classes 将模型的字段类型查询定义为表单字段类型,默认情况模型字段自动转表单字段类型

    1.1K40

    Django模型model

    Django模型类开发流程 在models.py中定义模型类,要求继承自models.Model 把应用加入settings.py文件的installed_app项 生成迁移文件 执行迁移生成表 使用模型类进行...定义模型类 在模型中定义属性,会生成数据库表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...Django的模型进行数据库的查询操作的接口,Django应用的每个模型都拥有至少一个管理器 自定义管理器类主要用于两种情况 向管理器类中添加额外的方法创建管理器对象保存数据到数据库 class TestInfoManager...,模型的对象不存在时会引发此异常,结合try/except使用 实例方法 str (self):重写object方法,此方法在将对象转换成字符串时会被调用 delete():将模型对象从数据表中删除 11...()、order_by()、values() 返回单个值的方法 get():返回单个满足条件的对象 如果未找到会引发"模型类.DoesNotExist"异常 如果多条被返回,会引发"模型类.MultipleObjectsReturned

    15310

    自定义 Django 管理界面中的多对多内联模型

    问题背景在 Django 管理界面中,用户可以使用内联模型来管理一对多的关系。但是,当一对多关系是多对多时,Django 提供的默认内联模型可能并不适合。...例如,如果存在一个产品模型和一个发票模型,并且产品和发票之间是多对多的关系,那么在发票的管理界面中,Django 会显示一个表格,其中包含所有产品及其对应的复选框。...具体步骤如下:创建一个新的内联模型类。这个类继承自 admin.TabularInline 或 admin.StackedInline。在新的内联模型类中,重写 get_formset() 方法。...这个方法负责返回一个表单集,表单集中的每个表单对应于内联模型中的一个对象。在 get_formset() 方法中,使用 formset_factory() 函数创建表单集。...下面是一个示例代码,演示了如何自定义多对多内联模型的显示方式:from django.contrib import adminfrom django.contrib.admin.utils import

    12510

    Django源码学习-10-Minin 基础类

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...from django.views.generic import View 这个类是通用类的基类,其它类都是继承自这个类。 ?...Django把基本的http请求和响应抽象出来,封装成各自的类,在使用过程中只需把各个基类聚合到一起使用,可以按照要求重写自己需要的方法,那么就把这些基类称为Mixin。...(模板响应类) FormMixin(表单类) YearMixin, MonthMixin, DayMixin, WeekMixin, DateMixin(几个基于时间关系的类) ?...其他的所有内置class-based view都是把以上几个基础类组合, 重写方法以达到预期的结果。

    68120

    Django源码学习-18-ModelForm

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...使用 Django 开发 Web 程序,阶段一,手动对表单进行增、删、改、查,手动把ORM操作获取的数据渲染到模板;阶段二,Form 类,自动生成标签(input、select),并对用户输入的数据做规则验证...;阶段三,ModelForm 是Form和Django的Model数据库模型结合体,可以简单、方便对数据库进行增加、编辑操作和验证标签的生成。......} } ModelForm 的验证: 与普通的Form表单验证类型类似,ModelForm表单的验证在调用is_valid() 或访问errors 属性时隐式调用。...如果不重写具体字段并设置validators属性的话,ModelForm是按照模型中字段的validators来校验的。 ?

    75420

    django中ModelForm多表单组合的解决方案

    所以,基本表单的功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC中的C与M间的映射是非常体贴的,集中体现中Model模型中(比如模型的权限与用户认证)。...那么,一个模型代表着RDS中的一张表,模型的实例代表着关系数据库中的一行,而form如何与一行相对应呢?...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...在django的模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里的多张表。...        projectAddress = context['projectAddressForm'].save()           #从项目表单中获取到模型,先把地址的id赋到外键上再保存

    3.4K20

    Django 1.10中文文档-第一个应用Part7-自定义管理站点

    自定义管理表单 通过admin.site.register(Question)注册了Question后,Django可以自动构建一个默认的表单。如果您需要自定义管理表单的外观和功能。...现在先来试试重新排序表单上的字段。...当Django渲染admin/base_site.html的时候,这个模板语言将被生成最终的html页面,就像Part3中一样。 注意任何Django管理站点的默认模板都可以重写。...想要重写一个模板文件,只需要做和重写base_site.html相同的操作就行——将它从默认的目录拷贝到你自定义的目录中,然后修改它。...自定义应用模板 聪明的读者可能会问:但是DIRS默认是空的,Django是如何找到默认的admin模板呢?

    3.6K60

    37.Django1.11.6文档

    Django 的模型描述一个对象的逻辑结构、行为以及展现给我们的方式,与此类似,Form 类描述一个表单并决定它如何工作和展现。...如果模型字段设置了choices,那么表单字段的widget将会设置为Select,选择项从模型字段的choices而来。 选项通常会包含空选项,并且会默认选择。 ...覆盖clean()方法 可以重写模型表单的clean() 来提供额外的验证,方法和普通的表单一样。 模型表单实例包含一个instance 属性,表示与它绑定的模型实例。...该方法采用单个参数 - 表单中的表单的索引。 ...请注意,我们正在谈论这里的表单上的clean()方法,而较早的我们在一个字段上写了一个clean()方法。 在确定哪些地方进行验证时,保持领域和形式差异很重要。 字段是单个数据点,表单是字段的集合。

    24.4K80

    Django中的多态模型概念、使用场景以及如何实现多态模型

    在Django开发中,经常遇到需要建立不同类型的模型之间的关系的情况。而使用多态模型可以帮助我们更好地管理这些复杂的关系。本文将介绍Django中的多态模型概念、使用场景以及如何实现多态模型。...多态模型的实现方法在Django中,我们可以使用两种方法来实现多态模型:抽象基类和第三方库。方法一:抽象基类Django的抽象基类是一种用于定义模型共享字段和行为的方式。...其中,django-polymorphic 是一个流行的库,可以简化多态模型的实现。...以下是使用 django-polymorphic 实现多态模型的示例:首先,安装 django-polymorphic:pip install django-polymorphic然后,在Django的设置文件中添加以下配置...django-polymorphic 提供了一些额外的功能,如过滤查询、获取所有子类等。总结多态模型是Django中一种强大的工具,可以帮助我们管理复杂的数据关系。

    34320

    Django源码学习-9-TemplateView 通用视图

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...django基于类的通用视图就是将一些mixin合成为有用的通用视图。...基于类的通用视图(以及任何继承了Django提供的基础类的基于类的视图)都能够以下面两种方式被配置:子类化,或者直接通过URLconf来传递参数。...当子类化一个类视图时,可以重写一些属性(比如template_name)或者 一些方法(比如 get_context_data)在子类中来提供一些新的值或者方 法。...Django有一个通用视图来完成这个功能 - TemplateView - 因此可以子类化它,然后重写模板的名称: from django.views.generic import TemplateView

    1.5K20

    【Django | allauth】useprofile 用户模型扩展

    创建扩展模型(添加字段)from django.contrib.auth.models import Userfrom django.db import models# Create your models...forms.py,并重写表单,由于注册表单时,只会自定创建user对象,并没有创建userprofile并自动与扩展模型userprofile 进行关联,所以需要重写注册表单,并修改默认注册表单配置,注册时两个对象一起被创建...通过重写表单,你还可以很容易添加其它字段。...: 自定义表单 在配置好之后,是直接引入到allauth.account,forms的,这个时候是不能使用 重写的继承方法的!,不然引入父类的操作会陷入调用循环!...str (self)def str (self)verbose_name表单模型和表单的使用✨谢谢你的阅读,你的点赞和收藏是我创作的最大动力✨我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖

    21110

    Django学习笔记 1.7 自定义 admin 站点

    作者: iotisan 前言 这节笔记将更加深入地处理 admin 站点,包括修改表单更加直观呈现模型数据,快速添加关联对象,以及后台涉及的列表展示、过滤器、搜索框等操作。...1 自定义后台表单 polls/admin.py 通过 admin.site.register(Question) 注册 Question 模型,Django 能够构建一个默认的表单用于展示。...通常来说,你期望能自定义表单的外观和工作方式。你可以在注册模型时将这些设置告诉 Django。...默认提供 3 个足够的选项字段。” 3 自定义后台更改列表 3.1 显示列表 默认情况下,Django 显示每个对象的 str() 返回的值。但有时如果我们能够显示单个字段,它会更有帮助。...当输入待搜项时,Django 将搜索 question_text 字段。

    99420
    领券