#自定义校验规则,该方法在校验时被系统自动调用,次序在“字段约束”之后 def clean_message(self): message = self.cleaned_data['message']#能到此处说明数据符合“字段约束”要求 num_words = len(message.split()) if num_words <0:#单词个数 raise forms.ValidationError("your word is too short!") return message
views.py
#coding: gb2312 from django.http import HttpResponse import datetime,calendar import time from django.http import HttpResponse from django.template import Context from django.template.loader import get_template from django.http import HttpResponse, Http404 from django.contrib.auth.models import User from django.shortcuts import render_to_response from django.http import HttpResponseRedirect from django.contrib.auth import logout from django.template import RequestContext #from django import form
from django.shortcuts import render from .forms import ContactForm #from django.shortcuts import render_to_response #from django_manage_app.forms import ContactForm
def current_datetime(request): now = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())) html = 'It is now %s.' %now return HttpResponse(html)
def contact_author(request): if request.method == 'POST':#提交请求时才会访问这一段,首次访问页面时不会执行 form = ContactForm(request.POST) if form.is_valid():#说明各个字段的输入值都符合要求 cd = form.cleaned_data#只有各个字段都符合要求时才有对应的cleaned_data #print (form.cleaned_data()) print (cd['subject']) print (cd['email']) print (cd['message']) return HttpResponseRedirect('/thanks/') else:#有部分字段不符合要求,会有error相关信息给加到form中去,需要覆盖掉 #print (form) print ('The data does not meet the requirements') print (form['subject'].errors) print (form['email'].errors) print (form['message'].errors) else:#首次访问该url时没有post任何表单 form = ContactForm()#第一次生成的form里面内容的格式 print (form) print (form.is_valid())