色彩时光 | 记录程序员世界的点点滴滴

django form的学习


慢慢接触django渐渐发现其强大 比如清晰的框架结构,通过model直接进行数据库的生成,以及今天了解的根据form对象直接生成表单页面。

表单类


class MyForm(forms.Form):
    your_name=forms.CharField(max_length=20,label="名字")

视图类


def home(request):
    if request.method=='POST':
        form=MyForm(request.POST)
        if form.is_valid():
            name=form.data.get('your_name')
            content=u"你的名字是:"+name
            return HttpResponse(content)
    else:
        form=MyForm();
    params={"form":form}
    return render_to_response('index.html',params,RequestContext(request))

访问是get请求,将创建一个空form实例 并在模型中展示。访问是post请求,将创建form实例并填充数据form=MyForm(request.POST),当form.is_valid()表单不可用,返回表单页面并填充数据。当表单可用,验证表单数据可用并更新数据进入下个页面。

模板(*RequestContext(request)避免csrf_token missing or incorrect的错误)


<form action="/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="提交" />
</form>

表单项widget能自定义页面控件及样式,error_messages定义错误信息


message=forms.CharField(widget=forms.Textarea(attrs={'class':'myclass','style':'border:1px solid #ccc;'})
                        ,label=u"消息"
                        ,error_messages={"required":u"亲,不能为空",'invalid':u"格式不正确"})


您可能也对下面文章感兴趣:

Write a Comment


* Content (required) 10~500s

分类

热门标签

友情链接