码迷,mamicode.com
首页 > 其他好文 > 详细

django的form组件的插件相关参数和保留内容

时间:2018-03-06 15:37:37      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:form保留上次内容

上节的常用字段,和参数,这节看看这些参数的具体使用

    <form method="POST" enctype="multipart/form-data">
        {% csrf_token %}

            {{ form.xxoo.label }}
            {{ form.xxoo.id_for_label }}
            {{ form.xxoo.label_tag }}
            {{ form.xxoo.errors }}
            <p>{{ form.user }} {{ form.user.errors }}</p>
            <input type="submit" />
    </form>

eg:这里可以在Get的时候,把form表单实例化后,在html里面来使用,obj=LoginForm(),然后上面的{{ obj.xxoo.label }}里面的xxoo代表的是form里面的字段,如上节的username,
如果按照上面的一个一个的写,去生成html标签,很麻烦,,下面可以通过as_p来生成
技术分享图片
通过这个,会自动把后台的各种参数自动生成一个html标签,默认是input,修改可以通过widget,需要通过forms导入widgets
技术分享图片

保留上次的内容,

其实上面的这些生成html标签,是这个保留上次内容的一部分功能。

第一种方法通过form表达的方式

在用户get的时候,就把用户的form表单实例化,并且传到前端

def testform(request):
    if request.method == "GET":
        obj = TestForm()
        return render(request,‘testform.html‘,{‘obj‘:obj})

当post提交后,再次通过obj验证的时候,form表达式有数据的,再次返回前端的时候obj里面是有数据的了

   else:
        obj = TestForm(request.POST)
        if obj.is_valid():
            print(obj.cleaned_data)
        else:
            print(obj.errors)
            return render(request,‘testform.html‘,{‘obj‘:obj})#此时这个obj里面是有上次提交的数据的

如果后台通过form表达的方式来获取的数据,前端应该这么写了

    <form action="/testform/" method="post">
        {% csrf_token %}
        <p> {{ obj.t1 }} {{ obj.errors.t1.0 }}</p>
        <p> {{ obj.t2 }} {{ obj.errors.t2.0 }}</p>

        <input type="submit" value="提交">
    </form>

技术分享图片
技术分享图片

功能

技术分享图片

django的form组件的插件相关参数和保留内容

标签:form保留上次内容

原文地址:http://blog.51cto.com/sgk2011/2083442

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!