Django 表单 - 如何不进行验证?

7 投票
3 回答
2692 浏览
提问于 2025-04-11 18:23

假设我有一个简单的表单:

class ContactForm(forms.Form):
    first_name = forms.CharField(required=True)
    last_name = forms.CharField(required=True)

我为其中一个字段设置了默认值,但另一个字段没有。所以我这样设置:

default_data = {'first_name','greg'}
form1=ContactForm(default_data)

但是现在,当我去显示这个表单时,Django 提示我有一个验证错误,说 last_name 是必填的:

print form1.as_table()

那么,正确的做法是什么呢?因为这不是用户提交的数据,而是我想要预先填写的数据。

注意:将 required=False 设置为不需要是行不通的,因为我确实希望用户提交数据时这个字段是必填的。只是当我第一次在页面上显示表单时,我没有默认值。

3 个回答

1

你也可以手动检查和清除错误,方法是使用这个代码:form.errors.clear()

1

这是来自Django文档的内容:

from django import forms
class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    message = forms.CharField()
    sender = forms.EmailField()
    cc_myself = forms.BooleanField(required=False)

把“required=False”加上应该能达到你想要的效果。

11

表单构造函数有一个叫做 initial 的参数,可以用来给表单字段设置默认值。

撰写回答