在__init__中创建的Django Form字段在request.POST中不存在

时间:2019-03-03 13:44:37

标签: python django django-forms request

Form.py

class FormA(forms.ModelForm):
   fieldA = forms.CharField(required=True)
   fieldB = forms.CharField(required=True)

def __init__(self, *args, **kwargs):
   super(OfflineAccountEditForm, self).__init__(*args, **kwargs)
   self.fields['fieldC'] = forms.CharField(required=True)

class Meta:
model = Profile
fields = ('username','first_name','last_name')

如您所见,我尝试在init函数中初始化一个名为fieldC的新字段。在请求“获取”方法期间,它可以很好地显示在表单上。

但是,当我提交表单时,我打印出了表单,但是fieldC字段丢失了。

if request.method == 'GET':
    if obj:
        form = FormA(instance=obj)
    else:
        form = FormA()
else:
    if obj:
        form = FormA(request.POST, instance=obj)
    else:
        form = FormA(request.POST)

    print form

当我运行cleaned_data时,它找不到该字段。

fieldC = form.cleaned_data['fieldC']

有解决方案吗?请指导。预先感谢您,并感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

可能是因为您没有缩进__init__()方法吗?或Meta class