Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未验证Django数据库输入_Django_Django Models - Fatal编程技术网

未验证Django数据库输入

未验证Django数据库输入,django,django-models,Django,Django Models,我有这门课: class Object(models.Model): value=models.IntegerFiled(validators=[MaxValueValidator(100)]) 我为value属性获取用户输入,根据用户输入创建一个对象,并将其保存到数据库中。问题在于,用户可以在表单中输入例如120,该表单用于获取从模板/html页面到视图方法的输入。然后将一个无效对象保存到数据库中。 MaxValueValidator究竟是如何工作的?它什么时候起作用?验证器的作用是

我有这门课:

class Object(models.Model):
    value=models.IntegerFiled(validators=[MaxValueValidator(100)])
我为value属性获取用户输入,根据用户输入创建一个对象,并将其保存到数据库中。问题在于,用户可以在表单中输入例如120,该表单用于获取从模板/html页面到视图方法的输入。然后将一个无效对象保存到数据库中。
MaxValueValidator究竟是如何工作的?它什么时候起作用?验证器的作用是什么?(我在文档中确实找不到任何问题的答案)

我确实会检查输入表单在视图中是否有效,但这似乎并不能通过浏览器中的开发人员工具更改表单中的HTML属性来阻止保存无效对象

您可以制作一个表单,例如

class ObjectForm(forms.Form):
    value = forms.IntegerField(validators=[MaxValueValidator(100)])
然后根据用户输入验证表单

if ObjectForm(request.POST).is_valid():
    # save model object here
希望这对您有所帮助。

如果希望验证程序自动运行,您应该使用从模型生成表单。根据:

请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序