在上篇文章的基礎上,作些小小的改動.html
forms.py數據庫
class RegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput(attrs={'id':'pass'}))
sex = forms.ChoiceField(widget=forms.RadioSelect,choices=SEX_CHOICES)
birthday = forms.DateField(required=False,widget=SelectDateWidget(years=BIRTH_YEAR_CHOICES))
phone = forms.CharField(required=False,validators=[validate_phone])
class Meta:
model = Register
#fields = ['nickname','username','password','phone']
fields = '__all__'
def clean(self):
cleaned_data=super(RegisterForm,self).clean()
nick_name=cleaned_data.get('nickname')
username = cleaned_data.get('username')
password = cleaned_data.get('password')
email = cleaned_data.get('email')
db_email = Register.objects.filter(email=email)
ide
.....ui
if email in [email.email for email in db_email]:
self._errors['email'] = self.error_class([u"郵箱已經存在,請換一個!"])
return cleaned_data
views.pyspa
def register(request):
sn="TC"+datetime.datetime.now().strftime("%Y%m%d%H%M%S")
if request.method == 'POST':
regform = RegisterForm(request.POST,auto_id="%s",error_class=DivErrorList)
if regform.is_valid():
username = regform.cleaned_data['username']
user=regform.save(commit=False)
user.sn = sn
user.save()
return HttpResponseRedirect("/success/%s/" %username)
else:
regform = RegisterForm(auto_id="%s",label_suffix=":") #auto_id有3種設置:True/False/str 如果False不須要html元素中的id標識與True相反,auto_id="%s",則是field的名字
return render(request,"register.html",{'reg':regform})
def success(request,name):
return render(request,"sucess.html",{'username':name})orm
呵呵,成功將記錄寫到數據庫中了。htm
改天,再寫個用戶登陸(會話要考略了)。get
若是想了解更多,請關注咱們的公衆號
公衆號ID:opdevos
掃碼關注it