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

从UserAdmin继承时,Django显示用户表单验证错误消息

当从UserAdmin继承时,Django会自动处理用户表单验证错误消息。UserAdmin是Django内置的管理用户模型的类,它提供了一些默认的表单验证功能。

在Django中,用户表单验证错误消息是通过表单验证器来处理的。表单验证器是一组函数,用于验证表单字段的数据。当表单验证失败时,Django会自动将错误消息添加到表单字段的错误列表中,并在表单中显示这些错误消息。

对于从UserAdmin继承的自定义用户表单,可以通过重写表单验证器来自定义错误消息。可以使用Django提供的各种验证器函数,如validate_email()validate_password()等,来验证表单字段的数据,并在验证失败时添加错误消息。

以下是一个示例代码,展示了如何从UserAdmin继承并自定义用户表单验证错误消息:

代码语言:txt
复制
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.forms import UserChangeForm

class MyUserChangeForm(UserChangeForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 自定义错误消息
        self.fields['username'].validators.append(self.validate_custom_username)

    def validate_custom_username(self, value):
        # 自定义用户名验证逻辑
        if len(value) < 5:
            raise ValidationError('用户名长度不能少于5个字符')

class MyUserAdmin(BaseUserAdmin):
    form = MyUserChangeForm

# 注册自定义UserAdmin
admin.site.register(User, MyUserAdmin)

在上面的示例中,我们通过重写MyUserChangeForm类的__init__()方法,添加了一个自定义的用户名验证器validate_custom_username()。如果用户名长度少于5个字符,将抛出ValidationError异常,并将错误消息添加到username字段的错误列表中。

这样,当用户在管理后台编辑用户表单并提交时,如果用户名长度少于5个字符,Django会自动显示错误消息"用户名长度不能少于5个字符"。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBaaS):https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

37.Django1.11.6文档

但是渲染一个未填充的表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例,我们一般数据库中获取它。 当我们处理表单,我们一般在视图中实例化它。...如果您使用initial来显示表单集,则在处理该表单的提交,应该传递相同的initial,以便表单集可以检测用户更改哪些表单。...因为字段的验证方法在调用clean() 时会运行,你还可以访问表单的errors 属性,它包含验证每个字段的所有错误。...所以你需要记住这个事实,你需要验证的字段可能没有通过初试的字段检查。 在这一步,有两种方法报告错误。 最简单的方法是在表单的顶端显示错误。 ...报告验证错误的第二种方法可能包括将错误消息分配给其中一个字段。 在这种情况下,让我们在表单显示中分别关联一个错误信息到“subject” 和“cc_myself” 行。

24.2K80

【Python全栈100天学习笔记】Day44 Web表单介绍及使用

),这也是Django在提交表单的硬性要求,除非我们设置了免除CSRF令牌。...我们可以利用Django框架封装的表单功能来对用户输入的有效性进行检查,虽然Django封装的表单还能帮助我们定制出页面上的表单元素,但这显然是一种灵活性很差的设计,这样的功能在实际开发中基本不考虑,所以表单主要的作用就在于数据验证...(继承自ModelForm),我们排除了用户编号(no)和注册日期(regdate)这两个属性,并添加了一个repassword属性用来接收用户表单传给服务器的确认密码。...可以通过表单对象的is_valid方法对表单进行验证,如果用户输入没有问题,该方法返回True,否则返回False;由于我们定义的RegisterForm继承自ModelForm,因此也可以直接使用表单对象的...,登录表单类直接继承自Form没有跟模型绑定,定义了三个字段分别对应登录表单中的用户名、密码和验证码。

82030

自定义 Django的User Model,扩展 AbstractUser类注意事项

在你有表格被创建后更改此设置是不被 makemigrations 支持的,并且会导致你需要手动修改数据库结构,用户表中导出数据,可能重新应用一些迁移。...默认的User 如果你完全满意Django用户模型和你只是想添加一些额外的属性信息,你只需继承 django.contrib.auth.models.AbstractUser 然后添加自定义的属性。...5.自定义用户与内置身份验证表单 Django内置的forms和views和相关联的user model有一些先决条件。...如果你的自定义用户模型扩展于django.contrib.auth.models.AbscustomauthtractUser,你可以用djangodjango.contrib.auth.admin.UserAdmin...如果你的用户模型扩展于 AbstractBaseUser,你需要自定义一个ModelAdmin类。他可能继承于默认的django.contrib.auth.admin.UserAdmin

5.8K20

Django实战-信息资讯-Form 表单注册

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...本次注册涉及到使用短信验证码和图形验证码,所以在进行注册表单验证,不仅有用户名、密码和手机号,还需要对前端传过来的验证码进行比对验证。...同样,在注册表单中,也继承表单验证错误消息提示 Mixin 类。 ① 表单验证错误消息提示 Mixin 类,实现多继承;使用Mixin类实现多重继承要非常小心。...表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) 处理表单数据 表单数据都被存储在form.cleaned_data...= server_sms_captcha.lower(): return self.add_error('sms_captcha', '短信验证错误!')

45510

Django admin管理工具的使用、定制及源码解析

',) 15 fieldsets,详细页面,使用fieldsets标签对数据进行分割显示 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin...M2M显示,数据移动选择(方向:上下和左右) @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): filter_vertical...} # 或admin.HORIZONTAL 19 form = ModelForm,用于定制用户请求时候表单验证 from app01 import models from django.forms import...) class UserAdmin(admin.ModelAdmin): empty_value_display = "列数据为空,默认显示" list_display = ('user...我们如何修改这个app的名称达到定制的要求呢,其实Django已经在文档里进行了说明。 Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。

4K40

Django 表单处理流程

Django表单处理:视图获取请求,执行所需的任何操作,包括模型中读取数据,然后生成并返回HTML页面(模板中),我们传递一个包含要显示的数据的上下文。...使事情变得更复杂的是,服务器还需要能够处理用户提供的数据,并在出现任何错误时,重新显示页面。...下面显示Django 如何处理表单请求的流程图,对包含表单的页面的请求开始(以绿色显示): [ix7djaill3.png] 基于上图,Django 表单处理的主要内容是: 在用户第一次请求显示默认表单...将数据绑定到表单,意味着当我们需要重新显示表单用户输入的数据和任何错误都可取用。 清理并验证数据。...验证检查值是否适合该字段(例如,在正确的日期范围内,不是太短或太长等) 如果任何数据无效,请重新显示表单,这次使用任何用户填充的值,和问题字段的错误消息

2.4K20

django 自带 user 字段扩展及头像上传

django入门:环境及项目搭建》 《django入门:数据模型》 《django入门:视图及模版》 《django入门:Admin管理系统及表单》 《django入门:通用视图类重构视图》 《用django...import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import...通过继承 AbstractUser 来实现 首先需要在 models.py 文件中创建自己的 user model from django.contrib.auth.models import AbstractUser...这种方法适合只需要扩展 User Model 中的字段,会继承之前 AbstractUser 的全部字段,系统自带的 User 也是通过继承 AbstractUser 来实现的 # 系统的 User 源码...如果是在本地测试,数据库显示的文件地址会是你本地项目的地址,但是当你客户端发出请求后,收到的会是服务器地址,没毛病,不要以为自己保存的路径错了。

2K30

关于“Python”的核心知识点整理大全57

图19-3显示了包含这些链接显示特定主题的页面是什么 样的。 至此,“学习笔记”已具备了需要的大部分功能。用户可添加主题和条目,还可根据需要查 看任何一组条目。...模板login.html 用户请求登录页面Django将使用其默认视图login,但我们依然需要为这个页面提供模 板。...如果表单的errors属性被设置,我们就显示一条错误消息(见1),指出输入的用户名—密码 对与数据库中存储的任何用户名—密码对都不匹配。...这让你能够向已通过身份验证用户 显示一条消息,而向未通过身份验证用户显示另一条消息。 在这里,我们向已登录的用户显示一条问候语(见1)。...对于已通过身份验证用户,还设 置了属性username,我们使用这个属性来个性化问候语,让用户知道他已登录(见2)。在3处, 对于还未通过身份验证用户,我们再显示一个到登录页面的链接。

8010

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

我们知道每一个 URL 对应着一个 django 的视图函数,于是 django 调用这个视图函数,我们在视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据到数据库中,...如果通过表单提交的数据存在错误,那么我们把错误信息返回给用户,并在前端重新渲染表单,要求用户根据错误信息修正表单中不符合格式的数据,再重新提交。...django表单类必须继承自 forms.Form 类或者 forms.ModelForm 类。...因为视图函数 comment 中的表单实例是绑定了用户提交的评论数据,以及对数据进行过合法性校验的表单,因此当 django 渲染这个表单,会连带渲染用户已经填写的表单数据以及数据不合法的错误提示信息...请修改表单中的错误后重新提交。', extra_tags='danger') 发送的消息被缓存在 cookie 中,然后我们在模板中获取显示即可。

1.6K20

关于“Python”的核心知识点整理大全55

在6处, 我们使用模板标签{% empty %}打印一条消息,告诉用户当前主题还没有条目。 4....用于添加主题的表单用户输入并提交信息的页面都是表单,那怕它看起来不像表单用户输入信息,我们需 要进行验证,确认提供的信息是正确的数据类型,且不是恶意的信息,如中断服务器的代码。...对于只是服务 器读取数据的页面,使用GET请求;在用户需要通过表单提交信息,通常使用POST请求。处理 所有表单,我们都将指定使用POST方法。...用户初次请求该网页,其浏览器将发送GET请求; 用户填写并提交表单,其浏览器将发送POST请求。...由于实例化TopicForm我们没有指定任何实参,Django将创建一个可供用户 填写的空表单。 如果请求方法为POST,将执行else代码块,对提交的表单数据进行处理。

12110

使用django-allauth管理用户登录与注册

(=True) 使用社交账号提供者检索的字段(如用户名、邮件)来绕过注册表单 LOGIN_REDIRECT_URL (="/") 设置登录后跳转链接 ACCOUNT_LOGOUT_REDIRECT_URL...当注册成功后,用户会收到一封邮件来验证邮箱(使用邮箱强制验证),在你提交表单后,django-allauth会自动检测用户名和email是否已经存在。...import forms from .models import UserProfile class ProfileForm(forms.ModelForm): '''模型继承表单'''...(显示"验证邮箱") 用户验证邮箱(不会显示"验证邮箱") 注: 邮箱验证消息提示,可以只显示用户登录成功后页面。...使用 Baidu 登录 使用 Baidu 作为第三方登录,关联成功后,还需要设置邮箱和用户名 登录成功 美化表单 django-allauth 自带的模板是没有经过美化的,另外涉及到邮箱验证和各种消息也是固定的

6.7K30
领券