我有一个Django表单,其中包含一个必填字段(以及许多不是)。问题是,表单在加载时就像页面已经提交而没有必填字段一样。必填字段为红色,并提醒该字段是必填字段,如果字段是必需的,则字段旁边应该只有一个红色星号,并且尚未尝试在空白时提交它。
这是我在 views.py 的类声明:
class UpdateItem(UpdateView):
model = Item
form_class = ItemForm
form_class.required_css_class = 'required'
form_class.error_css_class = 'error'
template_name = "location/inventory/add_item.html"
我在页面本身的 jQuery 中找不到它在加载时会提交自己的任何地方,而其他类也有类似的声明但工作正常,所以我认为它与此无关。查看生成的页面的来源,我得到:
<tr class="required error"><th><label for="id_model">Model:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
当我应该得到的时候
<tr class="required"><th><label for="id_model">Model:</label></th>
这很可能是我尚未找到的表格的意外提交,还是其他原因?
问题在于,在 views.py 的其他地方,正在复制 POST 数据进行验证,而没有检查是否有任何 POST 数据。通过检查查看if request.method == "POST"
来解决。