django中的表单验证

时间:2009-07-15 12:54:47

标签: python django django-forms

我刚刚开始使用django。我遇到了表单,我需要知道哪一个是验证表单的更好方法。它会使用django表单还是应该使用javascript或某些客户端脚本语言来执行此操作?

5 个答案:

答案 0 :(得分:16)

您应该始终在服务器端验证您的表单,客户端验证只是为用户提供便利。

话虽如此,Django表单有一个变量form.errors,显示某些表单字段是否不正确。

{{form.name_of_field.errors}}可以为您提供错误填写的每个字段的每个错误。点击此处了解更多信息:

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

答案 1 :(得分:5)

有一个可插入的Django应用程序(django-ajax-forms),可帮助通过JavaScript验证客户端的表单。但正如AlbertoPL所说,仅将客户端验证用作可用性度量(例如告诉用户他的所需用户名已经被取走而没有重新加载注册页面)。有许多方法可以回避客户端验证,在大多数情况下,只需要停用JavaScript即可。

一般来说:假设所有来自外部的数据都有缺陷,直到验证为止。

答案 2 :(得分:4)

刚刚来到django-floppyforms,它似乎默认情况下进行客户端验证。他们使用HTML5,默认情况下支持客户端验证。如果浏览器不支持HTML5,不确定他们是否也使用javascript。还没有尝试过。

链接到django-floppyforms:DocumentationGithub

答案 3 :(得分:2)

如果您使用的是bootstrap,那么您只需在表单字段中添加必需的属性即可。例如,如果有programe字段,那么您可以像下面这样验证它:

在forms.py中:

programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'}))

注意:它需要链接到该表单的.html页面中的引导程序文件。

答案 4 :(得分:0)

你需要做的就是JS。 This app将表单与parsley.js集成,以自动标记具有正确data- *属性的表单。