Python Django教程之模型中字段验证详解
作者:海拥 发布时间:2021-01-04 18:56:48
标签:Django,字段,验证
对模型中的字段进行验证
Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都带有来自Django验证器的内置验证。例如,IntegerField 附带了内置验证,即它只能存储整数值,并且该值也存储在特定范围内。
在极客应用程序的 models.py 文件中输入以下代码。
from django.db import models
from django.db.models import Model
# 在此处创建模型。
class GeeksModel(Model):
geeks_field = models.IntegerField()
def __str__(self):
return self.geeks_field
在运行临时迁移并在Django上迁移并渲染模型之后,让我们尝试使用字符串“GfG是最好的”创建一个实例。
你可以在管理界面中看到,不能在整数字段中输入字符串。同样,每个字段都有自己的验证。
基本模型数据类型和字段列表
模型最重要的部分和模型的唯一必需部分是它定义的数据库字段列表。字段由类属性指定。以下是 Django 中使用的所有字段类型的列表。
字段名称 | 描述: |
---|---|
AutoField | 它是一个自动递增的整数字段。 |
BigAutoField | 它是一个 64 位整数,很像 AutoField,只是它保证适合从 1 到 9223372036854775807 的数字。 |
BigIntegerField | 它是一个 64 位整数,很像 IntegerField,只是它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。 |
BinaryField | 用于存储原始二进制数据的字段。 |
BooleanField | 真/假字段。 此字段的默认表单构件是复选框输入。 |
CharField | 它是用于从小到大尺寸输入的字符串字段 |
DateField | 日期,在 Python 中由日期时间.date 实例表示 |
它用于日期和时间,在 Python 中由日期时间.datetime 实例表示。 | |
DecimalField | 它是一个固定精度的十进制数,在 Python 中由十进制实例表示。 |
DurationField | 用于存储时间段的字段。 |
EmailField | 它是一个字符字段,用于检查值是否为有效的电子邮件地址。 |
FileField | 它是一个文件上传字段。 |
FloatField | 它是一个浮点数,在 Python 中由浮点实例表示。 |
ImageField | 它从 FileField 继承所有属性和方法,但也验证上传的对象是否为有效图像。 |
IntegerField | 它是一个整数字段。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。 |
GenericIPAddressfield | 字符串格式的 IPv4 或 IPv6 地址(例如 192.0.2.30 或 2a02:42fe::4)。 |
NullBooleanField | 就像布尔字段一样,但允许 NULL 作为选项之一。 |
PositiveIntegerField | 类似于整数域,但必须为正数或零 (0)。 |
PositiveSmallIntegerField | 就像正整数字段一样,但只允许某个(依赖于数据库的)点下的值。 |
SlugField | 鼻涕虫是一个报纸术语。slug是某物的简短标签,仅包含字母,数字,下划线或连字符。它们通常用于网址。 |
SmallIntegerField | 它类似于整数字段,但只允许某个(依赖于数据库的)点下的值。 |
TextField | 一个大的文本字段。此字段的默认表单构件是文本区域。 |
TimeField | 一个时间,在 Python 中由日期时间.time 实例表示。 |
URLField | 由网址验证的网址的字符字段。 |
UUIDField | 用于存储通用唯一标识符的字段。使用蟒蛇的 UUID 类。在 PostgreSQL 上使用时,它存储在 uuid 数据类型中,否则存储在字符(32) 中。 |
关系字段
Django还定义了一组表示关系的字段。
字段名称 | 描述: |
---|---|
ForeignKey | 多对一的关系。需要两个位置参数:与模型相关的类和on_delete选项。 |
ManyToManyField | 多对多关系。需要一个位置参数:与模型相关的类,其工作方式与 ForeignKey 完全相同,包括递归和惰性关系。 |
OneToOneField | 一对一的关系。从概念上讲,这类似于具有 unique=True 的外来密钥,但关系的“反向”端将直接返回单个对象。 |
字段选项
字段选项是为每个字段提供的参数,用于应用某些约束或将特定特征赋予特定字段。例如,将参数 null = True 添加到 CharField 将使其能够在关系数据库中存储该表的空值。
以下是字符字段可以使用的字段选项和属性。
字段选项 | 描述: |
---|---|
Null | 如果为 True,Django 将在数据库中将空值存储为 NULL。默认值为假。 |
Blank | 如果为 True,则允许该字段为空。默认值为假。 |
db_column | 要用于此字段的数据库列的名称。如果没有给出,Django将使用该字段的名称。 |
Default | 字段的默认值。这可以是值或可调用的对象。如果可调用,则每次创建新对象时都会调用它。 |
help_text | 要与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。 |
primary_key | 如果为 True,则此字段是模型的主键。 |
editable | 如果为 False,则该字段将不会显示在管理员或任何其他模型窗体中。在模型验证期间也会跳过它们。默认值为 True。 |
error_messages | error_messages参数允许您覆盖字段将引发的默认消息。传入包含与要覆盖的错误消息匹配的键的字典。 |
help_text | 要与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。 |
verbose_name | 字段的人类可读名称。如果未给出详细名称,Django 将使用字段的属性名称自动创建它,并将下划线转换为空格。 |
validators | 要为此字段运行的验证程序列表。 |
Unique | 如果为 True,则此字段在整个表中必须是唯一的。 |
来源:https://juejin.cn/post/7154621244665495565
0
投稿
猜你喜欢
- 本文实例讲述了Python单链表的简单实现方法,分享给大家供大家参考。具体方法如下:通常来说,要定义一个单链表,首先定义链表元素:Eleme
- pytorch geometric的GNN、GCN节点分类# -*- coding: utf-8 -*-import osimport to
- 1、定义路由// 阿里云文件储存Route::group(['prefix'=>'aliyun'],
- 我的电脑本来是有手动CMake+make安装的OpenCV3的,以及系统自带的python2.x,但是现在想用python3+OpenCV3
- 目录瞎比比与 print 相比 logging 有什么优势?基础用法保存到文件多模块使用 logging使用配置文件配置 logging瞎比
- 1、引言小 * 丝:鱼哥,你说百度翻译的准确,还是google翻译的准确?小鱼:自己翻译的最准确。小 * 丝:你这… 抬杠。小
- 使用了smtplib等第三方库,进行发送邮件,完成邮件报警功能如下是实例 :#!/usr/bin/pythonimport globimpo
- JavaScript组件打包模式js组件通常带着css image ,但这样使用起来可能会有些小麻烦,为了让组件足够的solo,有了把css
- 添加用户(随着用户的创建,自动产生与用户同名的schema) CREATE USER "TESTER" PROFILE
- 设计原理从结构上来说,一个简单的图形界面,需要由界面组件、组件的事件 * (响应各类事件的逻辑)和具体的事件处理逻辑组成。界面实现的主要工作
- 目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?fil
- 元数据简介元数据 (metadata) 最常见的定义为“有关数据的结构数据”,或者再简单一点就是“关于数据的信息”,日常生活中的图例、图书馆
- 1 引言形态学运算是针对二值图像依据数学形态学集合论方法发展起来的图像处理的方法.其主要内容是设计一整套的变换概念和算法,用以描述图像的基本
- 一、分析链接上一篇文章指路一般来说,我们参加某个网站的盖楼抽奖活动,并不是仅仅只参加一个,而是多个盖楼活动一起参加。这个时候,我们就需要分析
- InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句
- 在Intel的早期,Andy Grove遇到一个雇员 - 他建议公司在芯片的基础上开发个人计算机。AndyGrove疑问道“个人计算机能做什
- python中安装包的方式有很多种:源码包:python setup.py install在线安装:pip install 包名(linux
- 1、封装的理解封装(Encapsulation):属性和方法的抽象属性的抽象:对类的属性(变量)进行定义、隔离和保护分为私有属性和公开属性:
- 本文实例讲述了php下pdo的mysql事务处理用法。分享给大家供大家参考。具体分析如下:php+mysql事务处理的几个步骤:1.关闭自动
- 信息安全的核心就是数据库的安全,也就是说数据库加密是信息安全的核心问题。数据库数据的安全问题越来越受到重视,数据库加密技术的应用极大的解决了