首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django forms.validation错误未显示

Django forms.validation错误未显示
EN

Stack Overflow用户
提问于 2020-01-29 15:43:07
回答 1查看 189关注 0票数 0

我试图使用内置于用户的djangos创建一个注册表单。我希望有一个密码字段,然后是第二个字段来验证密码匹配(请记住,这是一个新用户,所以数据库中还不存在密码)。我认为我非常接近,似乎我需要验证错误从表单传递到视图。表单只会清除我们的passwords...and,留下剩下的输入数据,但根本不会引发验证错误。任何想法和帮助都是非常感谢的!

表单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class UserForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput())
    ver_password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': ' confirm password'}))
    ver_email = forms.EmailField(widget=forms.EmailInput(attrs={'placeholder': ' confirm email'}))

    class Meta():
        model = User
        fields = ('username',
                  'password',
                  'first_name',
                  'last_name',
                  'email')

    def clean(self):
        all_clean_data = super().clean()
        clean_email = all_clean_data['email']
        clean_ver_email = all_clean_data['ver_email']
        clean_password = all_clean_data['password']
        clean_ver_password = all_clean_data['ver_password']

        if clean_email != clean_ver_email:
            raise forms.ValidationError("Emails do not match")
        if clean_password != clean_ver_password:
            raise forms.ValidationError("Passwords do not match")

        return all_clean_data

视图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def register(request):

    registered = False
    newregister = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileInfoForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():

            user = user_form.save()
            user.set_password(user.password)
            user.save(update_fields=['username','password','first_name','last_name','email'])

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()

            registered = True
            newregister = True
            return render(request, 'dai_members_app/login.html',
                                    {'user_form':user_form,
                                      'profile_form':profile_form,
                                      'registered':registered})
        else:
            print(user_form.errors,profile_form.errors)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-29 17:56:10

如果表单无效,则视图不会返回任何内容。它只在表单有效的情况下返回响应,这就是为什么“表单只是清除我们的passwords...and,留下其余的输入数据”。

其次,视图是不寻常的,因为表单视图通常同时处理GET请求(显示空白表单)和POST请求(验证和保存传入的数据)。除非您有充分的理由去做一些不同的事情,否则至少在学习基础知识时,您应该坚持使用标准Django模式。

请参见Django文档中的表单处理功能视图示例:https://docs.djangoproject.com/en/dev/topics/forms/#the-view

值得注意的是,Django已经为用户注册提供了一个表单:from django.contrib.auth.forms import UserCreationForm。你应该使用这个,而不是滚动你自己的,除非你需要做一些特别的事情,它看起来不像。

这里的教程也是一个很好的起点:https://simpleisbetterthancomplex.com/tutorial/2017/02/18/how-to-create-user-sign-up-view.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59977196

复制
相关文章
Django:错误整理
原因:django2.0 把原来的 django.core.urlresolvers 包更改为了 django.urls 包。
新码农
2021/01/18
4760
Django错误总结
错误: No module named 模块名称 找不到模块,需要将模块添加到Python的搜索目录中。 方法一、在运行时添加参数--pythonpath="路径" 方法二、将路径添加到path中。在settings.py中增加sys.path.insert(0,"path") 方法三、安装模块到python的dist-packages文件夹中
星哥玩云
2022/07/01
5710
点击显示错误
双折线点击一个,另一显示a b 错误.PNG 正确.PNG 隐藏一条线 tooltip: { // 气泡 trigger: "axis"
用户4344670
2019/08/28
1.2K0
点击显示错误
Sentry 错误监控(Django 错误监控)
Import and initialize the Sentry SDK early in your application’s setup:
卓越笔记
2023/02/18
2K0
Sentry 错误监控(Django 错误监控)
django显示当前时间
直接用HttpResponse返回一个html标签不太好,如果代码比较多,就不合适了。
py3study
2018/08/02
3.1K0
Django admin显示中文
在定义 Model 类的时候,在 Meta 里面显式指定 verbose_name 和 verbose_name_plural即可指定该模型在 Admin 里面显示的别名。
用户2936342
2018/08/27
1.2K0
DJango错误日志生成
DJango错误日志生成 setting.py设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple': {
小小咸鱼YwY
2020/06/19
7350
「R」显示英文错误
中文使用 R 经常看到各种乱码文字,让人看不懂意思,特别是在 Windows 系统上。
王诗翔呀
2020/07/02
1.8K0
layui单选框未显示的问题
一开始还没导入idea的时候,单纯点击一个网页是有显示出来的,当我把这个带有单选框的网页放到idea的项目中去的时候,发现单选框没显示出来。 1.首先在确认js.css等东西有导入,和之前的网页也没有什么区别 2.网上查询之后, 解释:有些时候,你的有些表单元素可能是动态插入的。这时 form 模块 的自动化渲染是会对其失效的。虽然我们没有双向绑定机制, 但没有关系,你只需要执行 form.render(type, filter); 方法即可。
全栈程序员站长
2022/08/23
5.3K0
zblog未开启https后台不显示字体图标,提示“拒绝加载字体”错误的解决办法
之前给客户处理问题的时候发现他的网站没有开启https功能,也就是我们所谓的SSL证书,当时并没有在意可能觉得是服务器主机没有设置正确导致的,但是我的测试站因为SSL证书到期之后也出现了“Refuse
李洋博客
2023/03/03
1.9K0
zblog未开启https后台不显示字体图标,提示“拒绝加载字体”错误的解决办法
出现“内部错误,无法显示”
This page contains the following errors: error on line 2 at column 6: XML declaration allowed only at the start of the document Below is a rendering of the page up to the first error. 提示信息是头部有错误,我登录后台查看我修改过的页面,然后找到home.php我看了十几分钟没有发现那里有错误~~ 莫非头部不能有空格? 去掉试试
苦咖啡
2018/05/07
3.2K0
axios django CSRF 403错误
使用axios直接post django的接口的时候会提示CSRF 403错误 可以在post的data中转入csrftoken 也可以给单个方法关闭 from django.views.decorators.csrf import csrf_exempt,csrf_protect @csrf_exempt def test(request): pass
小贝壳
2020/03/05
1.4K0
linux python 中文显示错误
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 20-25: ordinal not in range(128)
py3study
2020/01/07
5.4K0
Django教程(五)- 上传及显示
上传及显示 model.py from django.db import models # Create your models here. class Profile(models.Model): name = models.CharField(max_length = 50) picture = models.ImageField(upload_to = 'pictures/') views.py from django.shortcuts import render from dja
Python攻城狮
2018/08/23
5080
Django教程(五)- 上传及显示
Django 错误之 No module named ‘MySQLdb’
由于卸载MySQL时将很多相关依赖包都卸载了,重装mysql后启动django出现如下错误:
星哥玩云
2022/08/16
1K0
Django 错误之 No module named ‘MySQLdb’
Django 错误:TypeError at / 'bool' object is not callable
使用 Django自带的 auth 用户验证功能,编写函数,使用 is_authenticated 检查用户是否登录,结果报错:
希希里之海
2018/08/02
8660
Django 2.1.7 视图 - 自定义404错误、500错误
上一篇Django 2.1.7 模型管理器 models.Manager 以及 元选项
Devops海洋的渔夫
2019/06/18
2.1K0
Django 2.1.7 视图 - 自定义404错误、500错误
Django跨域问题(CORS错误)
CORS_ORIGIN_WHITELIST = [ 'http://example.com' #允许访问的来源]
小小咸鱼YwY
2019/09/11
2.7K0
django uwsgi 错误日志分析例子
一般能看到:--- no python application found, check your startup logs for errors ---,基本上是配置出错了,无法正常启动 uwsgi。
卓越笔记
2023/02/18
2.2K0
如何定位前端UI显示错误
在做Web端功能测试时,尤其是前端UI页面检查的时候,有些字面显示或统计数字显示等,是无法在正常情况下显示出来的,只能等到满足一定的条件下,才会显示出来,这个时候光检查当前显示的样式感觉有些被动,测试不全面,其实可以借助工具来进行模拟数据进行验证。
wangmcn
2022/10/30
1.1K0
如何定位前端UI显示错误

相似问题

Django未显示验证错误

13

未显示Django表单错误

10

Django验证错误未显示

15

Django错误页面未显示

20

未显示django表单错误

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文