django forms表单,仅对收集上来的数据进行验证,是否合法,不需要在forms文件内部进行操作数据,仅仅验证!!!
from django import forms
from .models import User
from django.http import HttpResponse
from django.shortcuts import render,redirect, reverse
class RegisterForm(forms.ModelForm):
‘’‘因为底下的Meta包含了三个字段, 但是register.html中还有一个"重复密码"的输入框
所以要在此处单独定义一个字段,把前台的重复密码接受进来’’’
password_repeat = forms.CharField(max_length=16)
'''需要重写父类的clean方法'''
def clean(self):
cleaned_data = super(RegisterForm, self).clean()
print('自己看源码,cleaned_data调到dict类型去了...')
print('clean函数返回cleaned_data,这里打印cleaned_data的类型是: %s'%type(cleaned_data))
print('这里打印cleaned_data的值是: %s'%cleaned_data)
password = cleaned_data.get('password')
password_repeat = cleaned_data.get('password_repeat')
'''这里form的作用仅仅是手机数据,然后验证数据,在这个forms文件里面不存入数据库,存入数据库的操作在views随后在那个进行,
这里只要把验证成功后的数据,返回即可,然后在view中接受,在处理.'''
if password != password_repeat:
raise forms.ValidationError('两次密码不一致')
return cleaned_data
'''这里不进行对数据库的操作'''
# if password == password_repeat:
# '''如果判断成功,保存进session'''
# user = User.objects.create('username')
class Meta:
model = User
fields = ['username', 'email', 'password']