Python 在Django,我如何允许';空';字段中的值是否以编程方式从表单中删除?

Python 在Django,我如何允许';空';字段中的值是否以编程方式从表单中删除?,python,django,forms,Python,Django,Forms,我正在用django编写一个应用程序,我有下一个模型: class A(models.Model): att1= models.ForeignKey(B, related_name="att1") att2= models.ForeignKey(C) ... 如您所见,模型的属性不能为“null” 我还有一个上面模型的搜索表单,当我在相应的视图中处理它时,我在代码行中出现了下一个错误: # If the two forms are valid...

我正在用django编写一个应用程序,我有下一个模型:

class A(models.Model):
    att1= models.ForeignKey(B, related_name="att1")
    att2= models.ForeignKey(C)
    ...
如您所见,模型的属性不能为“null”

我还有一个上面模型的搜索表单,当我在相应的视图中处理它时,我在代码行中出现了下一个错误:

        # If the two forms are valid...
    if A_form.is_valid():
错误->无法分配无:“A.att1”不允许空值

因此,我认为发生错误是因为在模型中,我没有为该属性定义null=True

问题是,当我创建一个引用到反模型A的对象时,我希望属性“att1”和“att2”不为“null”,但在搜索表单中,字段是否已填充并不重要。当然,在表单中,我定义了required=False时属性不是必需的:

class Aform(forms.ModelForm):

def __init__(self, *args, **kwargs):
    super(Aform, self).__init__(*args, **kwargs)
    # Making name required
    self.fields['att1'].required = False
    self.fields['att2'].required = False
所以,我的问题是:如何修复这个错误?我可以像在模型定义中那样,将“null=True”选项附加到表单中的属性吗?有没有办法允许搜索表单中的属性为空


非常感谢你

假设
a表单
没有直接覆盖
forms.ModelForm
,您可以覆盖
是否有效
是否干净_att1


文档的
clean_att1

只是为了澄清,表单
A_表单
在哪里?它是
a
的模型形式吗?