Django-表单不接受通过设置html值attr自动填充的值

时间:2018-07-29 04:03:21

标签: django django-forms django-templates django-views

我有一个html输入字段,如下所示:

const sortMe = arr => {

    let sorted = new Array(arr.length).fill(0);

    for(let i = 0; i < sorted.length; i++){
        if(sorted.indexOf(arr[i]) === -1) 
            sorted[arr[i] - 1] = arr[i];
        else sorted.splice(sorted.indexOf(arr[i]), 0, arr[i]);
    }

    return sorted.filter(x => x !== 0);
}

console.log(sortMe([3,15,2,1,18,2,5,6,7,12,3,1,2,3]))

在这里,<input type="number" name="bha_number" value="5" disabled="disabled" class="form-control django-input-form" required="" id="id_bha_number"> 通过以下代码预先填充在我的视图中:

value="5"

提交表单时,使用以下方法覆盖我的context['bha_list_form'].fields['bha_number'].widget.attrs['value'] = last_bha_number + 1 context['bha_list_form'].fields['bha_number'].widget.attrs['disabled'] = 'disabled' 方法来打印表单:

post()

它打印此:

bha_list_form = BHA_List_Form(request.POST)
print(bha_list_form) 

这意味着用户未填写表单字段。但是据我了解,填写表格与将<tr> <th><label for="id_bha_number">Bha number:</label></th> <td> <ul class="errorlist"> <li>This field is required.</li> </ul> <input type="number" name="bha_number" required id="id_bha_number" /> </td> </tr> 设置为相等具有相同的效果。因此,如果我通过手动设置html value attr来预填充该字段,它仍应将其识别为用户输入,但不是。

我知道我的表格是正确的,因为如果我不预先填写值,而是实际填写表格,它将显示以下内容:

html value

所以我预填写表单字段的方式一定有问题。我该如何实现?

++我想在不修改表单 forms.py 的情况下执行此操作,因为此预填充将特定于此页面。

0 个答案:

没有答案