博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django表单操作之django.forms
阅读量:5891 次
发布时间:2019-06-19

本文共 3181 字,大约阅读时间需要 10 分钟。

 
#
-*-coding:utf-8-*-
from django import formsclass ContactForm(forms.Form):    subject = forms.CharField(max_length=100)    email = forms.EmailField(required=False, label='Your e‐mail address')    """    forms框架把每一个字段的显示逻辑分离到一组部件(widget)中。 每一个字段类型都拥有一个默认的部件,    我们也可以容易地替换掉默认的部件,或者提供一个自定义的部件    """    message = forms.CharField(widget=forms.Textarea)    """    Django的form系统自动寻找匹配的函数方法,该方法名称以clean_开头,并以字段名称结束。 如果有这样的    方法,它将在校验时被调用    """    def clean_message(self):        message = self.cleaned_data['message']        num_words = len(message.split())        if num_words < 4:            raise forms.ValidationError("Not enough words!")        return message
# -*-coding:utf-8-*-from django.core.mail import send_mailfrom django.http import HttpResponseRedirectfrom django.shortcuts import render_to_responsefrom contact.forms import ContactFormdef contact(request):    errors = []    if request.method == 'POST':        if not request.POST.get('subject'):            errors.append('Enter a subject.')        if not request.POST.get('message'):            errors.append('Enter a message.')        if request.POST.get('email') and '@' not in request.POST['email']:            errors.append('Enter a valid e‐mail address.')        if not errors:            send_mail(                    request.POST['subject'],                    request.POST['message'],                    request.POST.get('email', 'noreply@example.com'),                    ['siteowner@example.com'],            )            return HttpResponseRedirect('/contact/thanks/')    return render_to_response('contact_form.html',{
'errors': errors})def contact2(request): if 'POST' == request.method: form = ContactForm(request.POST) if form.is_valid(): cd = form.cleaned_data send_mail(cd['subject'], cd['message'], cd.get('email','noreply@example.com'), []) return HttpResponseRedirect('/contact/thanks/') else: """ 传入初始值数据和传入数据以绑定表单是有区别的。 最大的区别是,如果仅传入* 初始值* 数 据,表单是unbound的,那意味着它没有错误消息。 """ form = ContactForm(initial={
'subject': 'I love your site!'}) return render_to_response('contact_form.html', {
'form': form})

 

    Contact us        
{% if form.errors %}

Please correct the error{

{ form.errors|pluralize }} below.

{% endif %}
{
{ form.as_table }}
    Contact us    

Contact us

{% if form.errors %}

Please correct the error{

{ form.errors|pluralize }} below.

{% endif %}
{
{ form.subject.errors }}
{
{ form.subject }}
{
{ form.email.errors }}
{
{ form.email }}
{
{ form.message.errors }}
{
{ form.message }}

 

转载于:https://www.cnblogs.com/506740640zl/p/5933148.html

你可能感兴趣的文章
Scribes:小型文本编辑器,支持远程编辑
查看>>
HDU 1065 - I Think I Need a Houseboat
查看>>
为什么要使用 SPL中的 SplQueue实现队列
查看>>
文件的相关操作(创建、打开、写入、读出、重命名)
查看>>
Redis与memecache的区别
查看>>
jQuery分步步骤
查看>>
品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制
查看>>
PHP const关键字
查看>>
设计模式之代理模式之二(Proxy)
查看>>
链接&装载&库-入口函数和程序初始化
查看>>
windows环境下安卓开发环境的快速搭建
查看>>
ssh 安装笔记
查看>>
css的再深入6(更新中···)
查看>>
游戏音效下载网站大全
查看>>
SpringBoot中实现依赖注入功能
查看>>
angular $resouse服务
查看>>
Spring Boot自定义Redis缓存配置,保存value格式JSON字符串
查看>>
知识分析与应用基础作业(一)
查看>>
B/S与C/S区别
查看>>
实验五
查看>>