Django中的表单验证

11 投票
5 回答
11322 浏览
提问于 2025-04-15 12:55

我刚开始使用Django,遇到了表单的问题。我想知道验证表单的最好方法是什么。是用Django自带的表单功能,还是用JavaScript或者其他客户端脚本语言来验证呢?

5 个回答

4

我刚发现了一个叫做django-floppyforms的东西,它似乎默认就能进行客户端验证。它使用了HTML5,而HTML5本身就支持客户端验证。我不太确定如果浏览器不支持HTML5的话,它是否也会用到JavaScript。不过我自己还没试过。

django-floppyforms的链接:文档Github

6

有一个可以插入的Django应用程序(django-ajax-forms),它可以通过JavaScript在客户端帮助验证表单。不过,正如AlbertoPL所说,客户端验证只应该作为一种提升用户体验的手段(比如,告诉用户他想要的用户名已经被使用,而不需要重新加载注册页面)。其实,有很多方法可以绕过客户端验证,通常只需要简单地关闭JavaScript就可以了。

总的来说:要假设所有来自外部的数据都是有问题的,直到它们被验证过。

18

你应该总是在服务器端验证你的表单,客户端的验证只是为了方便用户。

说到这里,Django的表单有一个变量叫做form.errors,它可以显示哪些表单字段填写错误。

{{ form.name_of_field.errors }} 可以告诉你每个填写不正确的字段的具体错误。想了解更多,可以查看这里:

http://docs.djangoproject.com/en/dev/topics/forms/

撰写回答