我有一个领域的一些示例模型:Django的使用模式场对客户端验证验证
class Task(models.Model):
priority = models.IntegerField(default=30, validators=[MinValueValidator(0), MaxValueValidator(300)])
当我通过modelform_factory()
函数创建一个ModelForm
对象并产生.as_table()
功能HTML那么对于这个领域我得到的东西像:
<input type="number" name="priority" value="30" required="" id="id_priority">
但我想输出看起来像这样:
<input type="number" name="priority" value="30" required="" id="id_priority" min="0" max="300">
这样做的最佳方法是什么?
从快速查看源代码,它看起来好像Django会添加'min'和'max'的形式输入,如果你创建一个'IntegerField' formfield用'min_value'和'max_value',例如'priority = forms.IntegerField(default = 30,min_value = 0,max_value = 300)'。但是,这对您自动从模型创建表单的情况无效。 – Alasdair
这绝对是我正在寻找的。所以,只能通过手动创建'forms.IntegerField'来设置'min_value'和'max_value'? – szafranskid
据我所见,最简单的方法是在表单字段上设置'min_value'和'max_value',可以继承'models.IntegerField'并覆盖'formfield'方法。 – Alasdair