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

Django管理GUI可以过滤文本字段是否为空白?

在Django管理GUI中,可以使用表单验证来过滤文本字段是否为空白。以下是一个简单的示例,展示了如何在Django模型中定义一个验证器来检查文本字段是否为空白:

代码语言:python
代码运行次数:0
复制
from django.core.exceptions import ValidationError
from django.db import models

class MyModel(models.Model):
    my_field = models.CharField(max_length=100)

    def clean(self):
        if not self.my_field.strip():
            raise ValidationError({'my_field': 'This field cannot be empty.'})

    def save(self, *args, **kwargs):
        self.full_clean()
        super().save(*args, **kwargs)

在这个示例中,我们定义了一个名为MyModel的模型,其中包含一个名为my_field的字符串字段。我们还定义了一个clean方法,该方法会在保存模型实例之前被调用,用于验证模型实例的数据。在clean方法中,我们使用strip()方法来检查my_field字段是否为空白,如果为空白,则抛出一个ValidationError异常。

save方法中,我们首先调用full_clean()方法来触发clean方法的执行,然后再调用父类的save方法来保存模型实例。

这样,在Django管理GUI中,当用户尝试保存一个空白的my_field字段时,系统会提示错误消息,告诉用户该字段不能为空白。

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

相关·内容

django_2

要求 修改数据库 Django shell 数据级联(一对多) 元信息 定义字段 模型过滤 创建对象4种方式 查询集 过滤器 获取单个对象 字段查询 时间 聚合函数 跨关系查询 F对象 Q对象...,可以实现对字段的约束 ·在字段对象时通过关键字参数指定 ·null ·如果True,Django 将空值以NULL 存储到数据库中,默认值是 False ·blank...·如果True,则该字段允许空白,默认值是 False ·注意 ·null是数据库范畴的概念,blank是表单验证证范畴的 ·db_column ·字段的名称,如果未指定,则使用属性的名称...过滤器:过滤器就是一个函数,基于所给的参数限制查询集结果,返回查询集的方法称为过滤器。 查询经过过滤器筛选后返回新的查询集,所以可以写成链式调用。...·在字段对象时通过关键字参数指定 ·null ·如果True,Django 将空值以NULL 存储到数据库中,默认值是 False ·blank ·如果True,则该字段允许空白

3.6K30

Django模型model

定义模型类 在模型中定义属性,会生成数据库表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...模型类中字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果True,Django 将空值以NULL 存储到数据库中,默认值是 False blank:如果True...,则该字段允许空白,默认值是 False 对比:null是数据库范畴的概念,blank是表单验证证范畴的 db_column:字段的名称,如果未指定,则使用属性的名称 db_index:若值 True...接下来主要讨论如下知识点 查询集 字段查询:比较运算符,F对象,Q对象(1)模型类查询集合 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:...&|~结合括号进行分组,构造做生意复杂的Q对象 过滤器函数可以传递一个或多个Q对象作为位置参数,如果有多个Q对象,这些参数的逻辑and 过滤器函数可以混合使用Q对象和关键字参数,所有参数都将and

14010
  • Django Admin后台管理

    Django通过简单配置就可以实现数据模型的后台管理。一般管理界面是给系统管理员使用的,以完成数据的CURD。 1.本地化 将语言和时区本地化,修改settings.py文件。...登陆后就会看到我们注册的模型类,点进去后就可以实现对数据库的CURD了。 4.自定义管理页面 Django提供了自定义管理页面的功能,是通过自定义模型管理类来实现的。...但在模型类中字段方法设置第一个参数verbose_name可以实现自定义标题,如ame = models.CharField(verbose_name='学校名', max_length=20)。...右侧过滤器,会将对应字段的值列出来,用于快速过滤,通过list_filters属性设置。上方搜索框,用于对指定字段的值进行搜索,支持模糊查询,通过search_fields属性进行设置。...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式的文字,如编辑对商品的详细信息描述,就需要使用富文本编辑器。这里以tinymce例在Django Admin后台中如何使用富文本编辑器。

    2.8K10

    django入门:Admin管理系统及表单(干货)

    视图及模版》 django 的强大之处还有自带后台管理系统,真心给力!!...这一部分将介绍 django 自带的后台管理系统,以及如何通过表单提交数据 django admin 后台管理系统 在后台管理系统注册创建的模型 from django.contrib import admin...:8080/admin" 打开 admin 管理系统,登录的账号密码就是我们第一部分通过命令行 createsuperuser时所创建的,登陆后我们可以找到站点管理,对模型进行管理操作 ?...admin 管理界面 为了可以和用户进行交流,我们需要获取用户的一些评论之类的,所以我们需要通过表单让用户提交信息,接下来我们将了解下 django 的表单 django 表单 存在相应模型(POST...,django 自动校验表单数据是否合理,根据模型的字段类型来判断 if form.is_valid(): # commit=False 表示只生成模型类的实例,

    2.9K20

    Django教程 —— 模型类详解

    : 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 Django 会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后...默认创建的主键列属性 id,可以使用 pk 代替,pk 全拼 primary key。 注意:pk是主键的别名,若主键名为id2,那么pk是id2的别名。...TextField 大文本字段,一般超过 4000 个字符时使用。...blank 如果True,则该字段允许空白,默认值是False。 db_column 字段的名称,如果未指定,则使用属性的名称。...max_length=2, choices=Status.choices, default=Status.UNPUBLISHED, ) QuerySet 过滤可以更新使用以下

    1.7K20

    重写django的model下的objects模型管理器方式

    django自定义管理器和model的继承 在我写代码时建立的很多数据库需要一些共同的字段,比如is_active, create_time这些字段,所以可以建立一个基类model 模型的继承 我们可以充分利用...时,经常会过滤掉is_active=False的,但是这样我们每个 filter(is_active=True)都需要这样写,那我们能不能重写掉这个filter方法, 让他每次可以自己过滤掉,这里我们可以看一下...django的源码 # 这里源码我就不拉出来了, 我们可以看到django是set了个objects属性, 这个属性对应是一个类的实例对象 class Manager(BaseManager.from_queryset...一个主键字段将自动添加到模型中 CharField(max_length=字符长度):字符串,默认的表彰样式是TextInput TextField:大文本字段,一般超过4000时使用,默认的表单控件是...null:如果True,Django将空值以NULL存储在数据库中,默认值False blanke:如果True,则该字段允许空白,默认值False 注意: null是数据库范畴的概念,blank

    1.6K40

    Python全栈开发之Django基础

    ; 项目默认目录 manage.py # 项目管理文件,通过它管理项目 与项目同名的目录,此处mysite _init_.py # 一个空文件,作用是这个目录test可以被当作包使用 settings.py...: 支持Null,True,False CharField(max_length): 字符串,表示最大字符个数 TextField: 大文本字段,字符超过4000使用 IntgerField: 整数字段...表示允许空,默认值是False blank:如果True,则该字段允许空白,默认值是False,null是数据库范畴的概念,blank是表单验证范畴的 db_column:字段的名称,如果未指定,...,下次请求同一网站时就发送该Cookie给服务器,Cookie名称和值可以由服务器端开发自己定义,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等,服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息...actions_on_bottom=True 同上,只不过是底部显示的属性 字段排序 admin_order_field=[字段1,字段2] 列标题 short_description='列标题' 侧边栏过滤

    3.8K20

    Django的设计哲学

    Django应该努力“标准化” URL,以免搜索引擎机器人感到困惑。 这就是 Django 会自动在网址结尾加 ‘/’( APPEND_SLASH 默认设置 True) 的原因。...Django模板系统应使将这些元素轻松存储在单个位置中,从而消除重复的代码。这就是模板继承的原理。 3、与 HTML 分离 模板系统不应设计仅输出 HTML。...Django 希望模板作者可以轻松地直接编辑HTML。 6、明显地对待空白 模板系统不应使用空格执行魔术操作。如果模板包含空白,则系统应在处理文本时将其视为空白–仅显示它。...这是自定义模板标签和过滤器背后的理念。 六、视图方面: 1、简单 编写视图应该和编写 Python 函数一样简单。当函数可以使用时,开发人员不必实例化一个类。...通过传递一个构造的请求对象,视图可以可以非常轻巧,干净且易于测试。 3、松耦合 视图不应该在乎开发人员使用哪种模板系统,甚至也不必在乎模板系统是否被使用。

    2.2K10

    Django—模型

    根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表创建自动增长的主键列,每个模型只能有一个主键列...TextField:大文本字段,一般超过4000个字符时使用。 IntegerField:整数。...选项 通过选项实现对字段的约束,选项如下: null:如果True,表示允许空,默认值是False。 blank:如果True,则该字段允许空白,默认值是False。...上去 3.字段查询 实现sql中where的功能,调用过滤器filter()、exclude()、get(),下面以filter()例。 通过"属性名_id"表示外键对应对象的id值。...,查询集可以含有零个、一个或多个过滤器。

    6.1K21

    Django 3.1 官网学习路线

    “选择”具有两个字段:选择的文本和投票提示。...字段可以有各种可选参数;在本例中,我们将投票的默认值设置 0。 最后,请注意使用外键定义了关系。这告诉 Django 每个选择都与一个问题相关。...它对于检查 Django 要做什么,或者您的数据库管理是否需要 SQL 脚本进行更改非常有用。...通常,您需要定制管理表单的外观和工作方式。可以通过在注册对象时告诉 Django 所需的选项来实现。 通过重新排列编辑表单中的字段来了解其工作原理。...在 QuestionAdmin 类里面添加以下代码: list_filter = ['pub_date'] 这会添加一个“过滤器”侧边栏,可以通过 pub_date 字段过滤更改列表: 显示的过滤器类型取决于您要过滤字段类型

    8.2K10

    零基础使用Django2.0.1打造在线教育网站(五):简易留言簿交互实现

    [0xt9pcu23o.png] 在空白处输入以下代码: class UserMessage(models.Model): # 继承于django.db.models.Model # max_length...null=True,blank=True指明字段可以为空,defalut = " "指定默认值空。...我们希望Django的模版语言可以用在更多的地方,而不仅仅是XML/HTML模版。在线上世界里,我们在email、Javascript和CSV中使用它。你可以在任何基于文本的格式中使用这个模版语言。...这将在变量 {{ name }} 被过滤器 lower 过滤后再显示它的值,该过滤器将文本转换成小写。使用管道符号 (|)来应用过滤器。...常用的模版过滤器: default,如果一个变量是false或者空,使用给定的默认值。否则,使用变量的值。

    1.4K80

    37.Django1.11.6文档

    这将在变量 {{ name }} 被过滤器 lower 过滤后再显示它的值,该过滤器将文本转换成小写。 使用管道符号 (|)来应用过滤器。 过滤可以“链接”。一个过滤器的输出应用于下一个过滤器。...验证给定的值一个十进制数。 忽略前导和尾随的空白。...ModelAdmin. preserve_filters T0>  管理员现在在创建,编辑或删除对象后保留列表视图中的过滤器。 您可以将此属性设置False,以恢复之前清除过滤器的行为。...此属性应设置每当有人在该文本框中提交搜索查询将搜索的字段名称的列表。 这些字段应该是某种文本字段,如CharField 或TextField。 ...Filters可以安装在loggers或handlers上;可以将多个filters链接起来执行多个过滤操作。 Formatters 最后,日志记录需要转换成文本

    24.3K80

    Django管理应用程序的高级配置在BookInstance模型的运用【Django

    Django管理应用程序 Django管理应用程序可以使用的模型自动构建可用于创建、查看、更新和删除记录的站点区域。这可以在开发过程中节省大量时间,使测试模型和查看是否有正确的数据变得容易。...根据网站的类型,管理应用程序也可以用于管理生产中的数据。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织的管理员或内部人员),因为以模型中心的方法不一定是所有用户的最佳界面,并且暴露了许多关于模型的不必要的细节。...默认情况下,这些字段是垂直显示的,但如果进一步将它们分组元组(如上面的日期字段所示),则它们将水平显示。...我们可以通过将粗体文本添加到BookInstanceAdmin类中,将其添加到不同的部分。

    1.7K20

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

    在这个表单中,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的外键关系展示一个select框。...我们还可以对显示结果进行过滤,通过使用list_filter属性。...在QuestionAdmin中添加下面的代码: list_filter = ['pub_date'] 它添加了一个“过滤器”侧边栏,这样就可以通过pubdate字段过滤显示question: ?...过滤器显示的筛选类型取决与你过滤字段,由于pub_data是DateTimeField,所以Django就自动给出了“今天”、“过去7天”、“本月”、“今年”这几个选项。 这一切进展顺利。...自定义管理站点外观 很明显,在每一个admin页面坐上顶端都显示“Django 管理”是感觉很荒诞,它仅仅是个占位文本。利用Django的模板系统,可以易修改它。

    3.6K60

    35.Django2.0文档

    过滤器使用管道字符, {{ name|lower }} #它功能是转换文本小写。...我们可以对任意字段进行排序,如果需要以多个字段标准进行排序(第二个字段会在第一个字段的值相同的情况下被使用到),使用多个参数就可以了,如下: ?...(3)添加过滤器 接下来,让我们Book列表页添加一些过滤器。...filter,Django日期型字段提供了快捷过滤方式,它包含:今天、过往七天、当月和今年 ?...成员标志:它用来控制这个用户是否可以登录管理界面(即:这个用户是不是你们组织里的成员) 由于用           户系统可以被用于控制公众页面(即:非管理页面)的访问权限(详见第十四章),这个标志可用来区分

    11.3K100

    django后台管理-admin

    0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册的app中的admin文件中导入模型然后注册模型 admin.site.register(导入的模型类...) 注册方式二该方法是Django1.7的版本新增的功能: from django.contrib import admin from blog.models import Blog #Blog模型的管理器...可以在settings.py中设置: LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'Asia/Shanghai' 1.8版本之后的language code设置不同: LANGUAGE_CODE...#listdisplay设置要显示在列表中的字段(id字段Django模型的默认主键) list_display = ('id', 'caption', 'author', 'publish_time...一般ManyToManyField多对多字段过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是外键需要遵循这样的语法:本表字段__外键表要显示的字段

    88010
    领券