我刚刚开始使用django。我遇到了表单,我需要知道哪一个是验证表单的更好方法。它会使用django表单还是应该使用javascript或某些客户端脚本语言来执行此操作?
答案 0 :(得分:16)
您应该始终在服务器端验证您的表单,客户端验证只是为用户提供便利。
话虽如此,Django表单有一个变量form.errors,显示某些表单字段是否不正确。
{{form.name_of_field.errors}}可以为您提供错误填写的每个字段的每个错误。点击此处了解更多信息:
答案 1 :(得分:5)
有一个可插入的Django应用程序(django-ajax-forms),可帮助通过JavaScript验证客户端的表单。但正如AlbertoPL所说,仅将客户端验证用作可用性度量(例如告诉用户他的所需用户名已经被取走而没有重新加载注册页面)。有许多方法可以回避客户端验证,在大多数情况下,只需要停用JavaScript即可。
一般来说:假设所有来自外部的数据都有缺陷,直到验证为止。
答案 2 :(得分:4)
刚刚来到django-floppyforms,它似乎默认情况下进行客户端验证。他们使用HTML5,默认情况下支持客户端验证。如果浏览器不支持HTML5,不确定他们是否也使用javascript。还没有尝试过。
链接到django-floppyforms:Documentation和Github
答案 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- *属性的表单。