700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > django form 对象is_bound属性

django form 对象is_bound属性

时间:2022-09-29 23:40:01

相关推荐

django form 对象is_bound属性

问题:

如果判断一个form实例中有没有数据?

bug方法:

通过form实例的is_valid()方法来验证

1、Form类的定义

class YourName(Form):your_name = CharField(max_length=10)

2、template直接渲染的上下文中的msg变量

{% extends 'learning/index.html' %}{% block container %}{{ msg }}{% endblock %}

3、view中的代码

def show_messsage(request):f = YourName()return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_valid())})

查看效果

可以看到页面中显示的是“the form has data = False” 看起来好像是判断正确了、但是问题并没有结束;这个“False”

只是一个巧合。

我们把代码改一下用来模拟一下用户的提交,假设用户提交了“12345678901234” 注意这里有14个字符。

可以看到数据是有的、可能通过is_valid()是分辨不出来的。

正确的做法:

1、通过form对象的is_bound属性来分辨form中是否有数据

def show_messsage(request):data={'your_name':'12345678901234'}f = YourName(data)return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_bound)})

is_bound 当form对象中有数据时能正确判断数据是有的、而这个有与数据是否能通过校验无关。

2、通过一个没有数据的form实例测试is_bound的效果

def show_messsage(request):f = YourName()return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_bound)})

总结:

form对象的is_bound用于测试form中有没有数据、它并不关心数据能不能通过校验。

-----------------------------------------------------------------------------------------------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。