Django中的forms一些小点

Posted bainianminguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中的forms一些小点相关的知识,希望对你有一定的参考价值。

1、默认情况下,chrom浏览器会提前对我们的form表单中的数据做校验,如果不想让chrom浏览器给我们做校验,则只需要按照下面的方式处理就可以了

<form method="post" action="/app1/test_forms/" novalidate>

  

关键是这个属性novalidate

 

2、forms中的as_p方法介绍

    {{ myform.as_p }}
{#    as_p:这个方法的意思是把form中所有的input标签用p标签包裹起来#}

  

3、forms中的errors方法介绍

    {{ myform.errors.pwd.0 }}
{#    errors:这里有forms中的所有的字段的所有错误#}
{#    errors.pwd:这里有forms中的pwd字段的所有的错误#}
{#    errors.pwd.0:这里取pwd所有字段的第一个错误#}

  

4、为text输入框设置插件的方法

    # text输入框的设置属性
    name = forms.CharField(max_length=16,label="username",widget=widgets.TextInput(attrs={"class":"c1"}))

  

5、利用插件,设置password输入框的方法

  # 密码输入框设置属性
    pwd = forms.CharField(label="pwd",min_length=6,error_messages={"min_length":"密码不能少于6位",},widget=widgets.PasswordInput(attrs={"class":1},render_value=True))

  

这里有一个render_value的方法意思是如果密码校验不通过,也不会把输入框清空,默认情况下,PasswordInput框会清空校验不通过的密码

 

6、后端的cleaned_data方法介绍

def test_forms(request):

    if request.method.lower() == "post":
        myform = Myform(request.POST)
        # 把post方式传递过来的数据传递个myform对象


        if myform.is_valid():
            # 对前端发过来的数据做校验,如果合法的话
            name = myform.cleaned_data.get("name")
            pwd = myform.cleaned_data.get("pwd")
            rep_pwd = myform.cleaned_data.get("rep_pwd")
            print(myform.cleaned_data)

        else:
            pass
    else:
        myform = Myform()
    return render(request,"form1.html",{"myform":myform})

  

 7、为forms生成的input设置bootstrap的样式

技术分享图片

 

以上是关于Django中的forms一些小点的主要内容,如果未能解决你的问题,请参考以下文章

Django的model操作中一些常用的小点

Django的视图函数中一些没有用过的小点

汇总一些JS小点使用方法记录

如何在Django视图中使用for循环返回每次迭代[关闭]

Django 之 form表单

Django中Form表单之字段详解