我有一個領域的一些示例模型: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