设为首页 加入收藏

TOP

Django学习笔记(五)―― 表单(三)
2015-07-20 18:06:46 来源: 作者: 【 】 浏览:28
Tags:Django 学习 笔记 表单
= form.cleaned_data send_mail( cd['subject'], cd['message'], cd.get('email', 'noreply@example.com'), ['siteowner@example.com'], ) return HttpResponseRedirect('/contact/thanks/') else: form = ContactForm( initial={'subject': 'AAAAAA'} ) return render(request, 'contact_form.html', {'form': form})

?

注意:默认值与表单传入是有区别的,区别在于,如果仅仅传入默认值,是没有绑定的。

?

7. 自定义校验规则

?

例如我们需要添加 message 字段有一个额外的校验,我们就要摘forms类中添加 clean_message() 方法

?

例子:添加校验 messge中的单词数量(注意不是字母数量,看 split() )要不少于4个.

?

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    email = forms.EmailField(required=False)
    message = forms.CharField(widget=forms.Textarea)

    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



?

?

?

?

Contact us

{% if form.errors %}

Please correct the error{{ form.errors|pluralize }} below.

{% endif %}
?

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 1915: Knight Moves 下一篇UVALive 6469 Deranged Exams (排..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: